PHP XML to Array


PHP XML to Array

EDIT:我使用json_decode的原因是将它从XML转换为数组。

所以我的困境是:

我访问一个返回xml的API,然后将其转换为如下数组:

public function convertXMLtoJSON($xml){
        return json_decode(json_encode(simplexml_load_string($xml), true), true);
}

当我有一个单一的项目(例如:)[SSINGLE item XML]

 <LineItem>
       <field>hello</field>
 </LineItem>

它显示为:[SSINGLE ITEM ARRAY]

[LineItem] => Array(
     [field] => hello
)

现在,如果我有:[MULTI-ITEM XML]

 <LineItem>
       <field>hello</field>
 </LineItem>
 <LineItem>
       <field>hello part 2</field>
 </LineItem>

我得到:[多项目阵列]

[LineItem] => Array(
         [0] => Array (
             [field] => hello
         )
         [1] => Array (
             [field] => hello part 2
         )
)

我需要第一个例子在一个数组中,而不仅仅是它本身,因为区分两者太耗时了。

根据我对您的具体问题的理解,您希望所有内容都像多数组一样格式化,即使只有一个结果。

我将通过在数组返回后检查其计数为1来处理此问题。让我们假设您有一个名为$xmlArray的数组,该数组具有您描述的格式的单个结果。

if (count($xmlArray) == 1) {
    $multiArray['LineItem'][] = $xmlArray['LineItem'];
}

这将把带有单个元素的$xmlArray转换为您在问题中描述的多行数组格式。