开发者

Strange Array Behavior in PHP

I am trying to build an array and I am looping through the values of an XML document, I have everything pulling out great using xpath, here's my code:

    function 开发者_如何学CparseAccountIds($xml) {

    $arr = array();

    foreach($xml->entry as $k => $v) {

        $acctName = $v->title;

        $prop = $v->xpath('dxp:property');
        foreach($prop as $k1 => $v1) {
            if($v1->attributes()->name == "ga:accountId")
                $acctId = (string) $v1->attributes()->value;
            else if($v1->attributes()->name == "ga:profileId")
                $profileId = (string) $v1->attributes()->value; 
        }

        echo "profile id ".$profileId;

        echo "<BR>";    

        echo "acctName ".$acctName;

        echo "<BR>";    

        $subArray = array($acctName => $profileId);

        print_r($subArray);

        $arr[] = array($acctId => $subArray);

    }

    print_r($arr);

    return json_encode($arr);

}

The most important bit is where I print_r subArray. I can see acctName and profileId print, but then subArray is empty. For Example:

profile id 45580
acctName accountName1
Array
(
)
profile id 4300
acctName accountName2
Array
(
)
profile id 4338
acctName accountName3
Array
(
)

How are these values not being inserted? I've been looking at the code for a while now, and I'm a bit confused.

Any suggestions would really help, Thanks!


try this:

 $subArray[$acctName] = $profileId;

instead of

$subArray = array($acctName => $profileId);


$v->title is actually a SimpleXMLObject still!

I forgot to cast it as a string, when I tried to make it the index in the array, it freaked out, geez I spent a whole hour on this!

Thanks for your suggestions guys :P

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜