PHP中的奇怪数组行为

时间:2011-07-07 22:28:45

标签: php arrays

我正在尝试构建一个数组,并且我正在循环遍历XML文档的值,我使用xpath完成了一切,这是我的代码:

    function parseAccountIds($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);

}

最重要的一点是print_r subArray。我可以看到acctName和profileId打印,但是subArray是空的。例如:

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

这些值是如何插入的?我一直在看代码一段时间,我有点困惑。

任何建议都会有所帮助, 谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个:

 $subArray[$acctName] = $profileId;

而不是

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

答案 1 :(得分:0)

$ v-&gt; title实际上仍然是SimpleXMLObject!

我忘了将它作为一个字符串投射,当我试图将它作为数组中的索引时,它吓坏了,geez我花了整整一个小时就完成了这个!

感谢您的建议:P