我有一个来自 simplexml_import_dom()
函数调用的多维多对象数组。
数组一部分的切片:
[Price] => SimpleXMLElement Object
(
[Prices] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[MType] => A
[PType] => R
这让我在尝试读取嵌套对象时遇到了很多问题。我曾尝试使用多个 get_object_vars()
遍历数组,但由于嵌套对象的深度和位置不断变化,我无法产生理想的结果。
PHP 是否包含我无法找到的将多维多对象数组转换为标准多维数组的函数?或者以前有人解决过这个问题吗?
感谢您的帮助!
最佳答案
这个问题经常被问到,但是在将 XML 树转换为数组时,有一个必须逐案解决的基本问题,这使得一刀切的方法变得不可能:如何你区分节点和属性吗?
例如,您如何将此 XML 转换为数组:
<node val="attr"><val>child</val></node>
此外,一个节点可以有任意数量的同名子节点,这是关联数组无法模拟的。
长话短说,您必须制定自己的解决方案。从您的输出来看,它看起来像这样:
$arr = array();
foreach ($Price->Prices as $Prices)
{
$tmp = array();
foreach ($Prices->attributes() as $k => $v)
{
$tmp[$k] = (string) $v;
}
$arr[] = $tmp;
}
如果这不是您要查找的内容,请编辑您的问题并添加源文档 (XML) 示例以及预期结果(数组)。
关于php - 在PHP中将多维多对象数组转换为标准多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1806903/