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转换为您在问题中描述的多行数组格式。