【问题标题】:iterate over an object and transform into an array type遍历对象并转换为数组类型
【发布时间】:2012-04-17 08:19:31
【问题描述】:

我有一个 XML 类,它读取 XML 文件并允许像这样访问它

<config>
    <directory>
        <mvc>
             <model>model</model>
        </mvc>
    </directory>
</config>

echo $xml->config->directory->mvc->model

(假设对象已被传递给变量$xml

输出

model

我想将每个父/子/值节点变成一个数组。所以

echo $xmlArr['config']['directory']['mvc']['model']

echo's model

我正在使用 foreach 循环设置,但后来意识到如果 XML 文件具有深层嵌套节点,那么我的 foreach 语句将只覆盖这么多层。 XML 文件是我无法解释的动态变量,需要一种动态方法才能递归地遍历节点并将它们作为数组索引附加。

【问题讨论】:

  • 绝对可以将 XML 转换为数组,或者使用 PHP 中内置的一些 XML 库,或者仅使用递归循环。虽然有两个不完全匹配的问题。 1) 属性。您是否像其他库一样从元素中创建一个分支? 2)内联元素。在大多数 XML 中没有这么多,但在 HTML 中,您如何指示“此数组值中途有一个子数组”?

标签: php xml


【解决方案1】:

在 PHP 中你可以使用xml_parse_into_struct 方法将 XML 结构转换为数组

参考:

http://www.php.net/manual/en/function.xml-parse-into-struct.php

【讨论】:

  • 看起来我走在了正确的道路上,但我需要做更多的工作。谢谢
【解决方案2】:

你可以看看php.net

对于每个深度级别,您可以在循环中创建一个数组,并在迭代后将其附加到您的主数组中。

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2021-11-14
    • 2018-05-13
    • 2021-09-09
    • 2021-12-15
    相关资源
    最近更新 更多