如何访问作为数组的 SimpleXMLElement 子项?
SimpleXMLElement(9) {
name => "John" (11)
phone => array(2) [
0 => "556 221 000" (19)
1 => "312 555 110" (19)
]
}
根据这篇文章http://www.sitepoint.com/parsing-xml-with-simplexml/我应该通过
轻松访问它$sxElement->phone[0];
但是 dump 只返回:
SimpleXMLElement(0)
我需要在 for 循环中访问它。谢谢。
编辑(XML 示例):
<company>
<phonebook>
<name>John</name>
<phone>556 221 000</phone>
<phone>312 555 110</phone>
</phonebook>
</company>
我需要在另一个对象上遍历我的 foreach 并根据迭代器值附加正确的手机。
最佳答案
您必须将数据转换为数组,所以试试这个(它对我有用)。
$el = new SimpleXMLElement(
'<company>
<phonebook>
<name>John</name>
<phone>556 221 000</phone>
<phone>312 555 110</phone>
</phonebook>
</company>'
);
$array = (array) $el->phonebook->phone;
它的输出是一个准备好操作的数组
。
Array
(
[0] => 556 221 000
[1] => 312 555 110
)
另一种获取 key 的方法。
foreach($sxElement->phone as $i => $value) {
echo "{$i} : {$value}" . PHP_EOL;
}
虽然这个不能被外层循环访问。
关于php - 以数组形式访问 SimpleXMLElement 子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837462/