为了账号安全,请及时绑定邮箱和手机立即绑定

获取对象 xml 中的数组(simplexml_load_string)

获取对象 xml 中的数组(simplexml_load_string)

PHP
白衣染霜花 2022-01-24 13:01:06
我$xml看起来像这样SimpleXMLElement Object(    [@attributes] => Array        (            [Total] => 450            [Count] => 4            [Start] => 0        )    [Code] => 0    [Item] => Array        (            [0] => SimpleXMLElement Object                (                    [Person.P_Id] => 14845                )            [1] => SimpleXMLElement Object                (                    [Person.P_Id] => 14844                )            [2] => SimpleXMLElement Object                (                    [Person.P_Id] => 14837                )            [3] => SimpleXMLElement Object                (                    [Person.P_Id] => 14836                )        ))现在我想让数组Item与另一个数组合并,但是当我尝试时$xml->Item,我只得到这个数组的第一个元素(即14845)。当我使用count($xml->Item)时,它返回真值(即 4)。我做错了什么来获取整个数组Item吗?
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您没有说是否要将项目作为 SimpleXMLElements,或者只是Person.P_Id值。要获取对象,您可以使用xpath获取数组:


$itemobjs = $xml->xpath('//Item');

print_r($itemobjs);

输出:


Array

(

    [0] => SimpleXMLElement Object

        (

            [Person.P_Id] => 14845

        )    

    [1] => SimpleXMLElement Object

        (

            [Person.P_Id] => 14844

        )    

    [2] => SimpleXMLElement Object

        (

            [Person.P_Id] => 14837

        )    

    [3] => SimpleXMLElement Object

        (

            [Person.P_Id] => 14836

        )    

)

如果您只想要这些Person.P_Id值,则可以使用以下方法迭代该数组array_map:


$items = array_map(function ($v) { return (string)$v->{'Person.P_Id'}; }, $itemobjs);

print_r($items);

输出:


Array

(

    [0] => 14845

    [1] => 14844

    [2] => 14837

    [3] => 14836

)


查看完整回答
反对 回复 2022-01-24
  • 1 回答
  • 0 关注
  • 255 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信