我正在尝试构建一个数组,并且我正在循环遍历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
(
)
这些值是如何插入的?我一直在看代码一段时间,我有点困惑。
任何建议都会有所帮助, 谢谢!
答案 0 :(得分:0)
试试这个:
$subArray[$acctName] = $profileId;
而不是
$subArray = array($acctName => $profileId);
答案 1 :(得分:0)
$ v-&gt; title实际上仍然是SimpleXMLObject!
我忘了将它作为一个字符串投射,当我试图将它作为数组中的索引时,它吓坏了,geez我花了整整一个小时就完成了这个!
感谢您的建议:P