PHP将XML转为数组的方法详解

发布时间:2020-08-22编辑:脚本学堂
本文详细介绍了,在php编程中,将XML数据转换为数组的详细过程,剖析了xml转为php数组的具体方法,感兴趣的朋友可以参考学习下。

本节内容:
PHP XML转数组

首先,得到一个xml型的对象:
 

复制代码 代码示例:
$resp = $this->c->execute($req, $sessionKey);//获得xml对象
$items=$resp->items;

针对这种方法:
读取对象的值,就用$items->item,或$items->item->price,如此操作很不方便,不符合php操作数组的习惯。

php提供了array方法将对象转换成数组,只需把转换数组的对象前面加上(array)即可。
例如,将$items->item(有很多item的对象)转换成数组:
 

复制代码 代码示例:
<?php
foreach ($items->item as $item){
         $goods[]=(array)$item;
}

$goods就是一个php数组了。
转换前:
 

SimpleXMLElement Object
(
    [cid] => 50003793
    [modified] => 2013-04-18 17:16:25
    [nick] => qq307819623
    [price] => 200.00
    [title] => Nokia N97全新行货
)
SimpleXMLElement Object
(
    [cid] => 50024921
    [modified] => 2013-04-18 16:58:06
    [nick] => qq307819623
    [pic_url] =>pic.jpg
    [price] => 888888.00
    [title] => 刘俊仲
)
SimpleXMLElement Object
(
    [cid] => 1512
    [modified] => 2013-04-18 16:56:46
    [nick] => qq307819623
    [pic_url] => item_pic.jpg
    [price] => 323232.00
    [title] => 二手你好
)
SimpleXMLElement Object
(
    [cid] => 50012166
    [modified] => 2013-04-18 15:10:07
    [nick] => qq307819623
    [pic_url] =>0-item_pic.jpg
    [price] => 32.00
    [title] => 放大率拉德斯基分拉沙德疯了似的看法拉斯法
)

转换后:
 

Array
(
    [0] => Array
        (
            [cid] => 50003793
            [modified] => 2013-04-18 17:16:25
            [nick] => qq307819623
            [price] => 200.00
            [title] => Nokia N97全新行货
        )

    [1] => Array
        (
            [cid] => 50024921
            [modified] => 2013-04-18 16:58:06
            [nick] => qq307819623
            [pic_url] => pic.jpg
            [price] => 888888.00
            [title] => 刘俊仲
        )

    [2] => Array
        (
            [cid] => 1512
            [modified] => 2013-04-18 16:56:46
            [nick] => qq307819623
            [pic_url] =>item_pic.jpg
            [price] => 323232.00
            [title] => 二手你好
        )

    [3] => Array
        (
            [cid] => 50012166
            [modified] => 2013-04-18 15:10:07
            [nick] => qq307819623
            [pic_url] => 0-item_pic.jpg
            [price] => 32.00
            [title] => 放大率拉德斯基分拉沙德疯了似的看法拉斯法
)