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

我$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吗?


白衣染霜花
浏览 256回答 1
1回答

慕尼黑8549860

您没有说是否要将项目作为 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)
打开App,查看更多内容
随时随地看视频慕课网APP