【问题标题】:php array from XML [closed]来自XML的php数组[关闭]
【发布时间】:2013-10-14 17:09:14
【问题描述】:

我有这个数组,它是从 web 服务中得到的,所以我得到的数组是一个带有数据的 XML。 我想打印每个我不知道该怎么做的寄存器。我尝试了很多方法来打印它,但我不能。

Array

(
    [Record] => Array
        (
            [0] => stdClass Object
                (
                    [Field] => Array
                        (
                            [0] => licsa
                            [1] => b0z833
                            [2] => 1381768597
                            [3] => 0xF447
                            [4] => -12.047333333333333
                            [5] => -77.12163333333334
                            [6] => 0.0
                            [7] => Licsa
                            [8] => licsa
                        )
                )
            [1] => stdClass Object
                (
                    [Field] => Array
                        (
                            [0] => licsa
                            [1] => b0z834
                            [2] => 1381767415
                            [3] => 0x000C
                            [4] => -12.047633333333334
                            [5] => -77.12366666666667
                            [6] => 0.0
                            [7] => Licsa
                            [8] => licsa
                        )

                )

        )

)


Array ( [Record] => Array ( [0] => stdClass Object ( [Field] => Array ( [0] => licsa [1] => b0z833 [2] => 1381768597 [3] => 0xF447 [4] => -12.047333333333333 [5] => -77.12163333333334 [6] => 0.0 [7] => Licsa [8] => licsa ) ) [1] => stdClass Object ( [Field] => Array ( [0] => licsa [1] => b0z834 [2] => 1381767415 [3] => 0x000C [4] => -12.047633333333334 [5] => -77.12366666666667 [6] => 0.0 [7] => Licsa [8] => licsa ) ) ) ) 1

打印我使用的......

【问题讨论】:

  • 您想将此数组转换为 XML 吗?
  • XML to Array OP 说。

标签: php xml arrays


【解决方案1】:

使用$array['key'] 访问数组,使用$object->key 访问stdClass,因此根据您的print_r 输出,您必须使用以下方式访问它:

echo 'licsa = ' . $array['Record'][0]->Field[0];

等等

你也可以循环遍历它:

foreach ($array['Record'] as $record) {
    echo 'licsa = ' . $record->Field[0];
}

【讨论】:

  • 谢谢,现在我可以在表格中显示数据了
【解决方案2】:

有点模糊,但试试:

foreach($array['Record'] as $object) {
    foreach($object->Field as $value) {
        echo $value;
    }
} 

【讨论】:

  • thanx 对我帮助很大,现在我可以从 XML 中看到数据了
  • 我需要独立查看每个寄存器才能处理数据,您能帮帮我吗?现在我看到了这样的数据----------------------------- -------------------------------------------------- -------------------------------------------------- ----licsab0z83313817704230x000C-12.047283333333333-77.121733333333340.0Licsalicsalicsab0z83413817712570xF447-12.047666666666666-77.12368Licsalicsalicsab0z83413817712570xF447-12.047666666666666-77.12368333333333330
  • @user2879678:您必须提供更多关于您想要访问或显示的内容的信息。另外,什么是“每个寄存器”?也许编辑您的问题以显示格式等。
  • 例如:我需要访问“[Record][0][Field][0]=> licsa”或“[Record][1][Field][2]=> 1381767415 ”。清楚了吗??
  • @user2879678: 记录是对象使用 -> echo $array['Record'][0]->Field[0];
【解决方案3】:

要将 XML 转换为数组,假设原始数组在 $xml_original 内,请执行以下操作:

$xml_array = unserialize(serialize(json_decode(json_encode((array) $xml_original), 1)));

此时应将所有对象转换为数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2012-04-14
    相关资源
    最近更新 更多