EDIT: Der Grund, warum ich json_decode verwendet habe, ist, es von XML zu einem Array zu bekommen.PHP XML zu Array
So, hier ist mein Dilemma:
ich eine API zugreifen, die xml zurück, ich habe es dann in ein Array umwandeln wie folgt:
public function convertXMLtoJSON($xml){
return json_decode(json_encode(simplexml_load_string($xml), true), true);
}
Wenn ich ein einzelnes Element (zum Beispiel :) [SINGLE ITEM XML]
<LineItem>
<field>hello</field>
</LineItem>
Es ist wie angezeigt wird: [SINGLE ELEMENT ARRAY]
[LineItem] => Array(
[field] => hello
)
jetzt, wenn ich: [MULTI ITEM XML]
<LineItem>
<field>hello</field>
</LineItem>
<LineItem>
<field>hello part 2</field>
</LineItem>
ich: [MULTI ITEM ARRAY]
[LineItem] => Array(
[0] => Array (
[field] => hello
)
[1] => Array (
[field] => hello part 2
)
)
ich das erste Beispiel müssen in einem Array sein, nicht nur durch weil das Unterscheiden zwischen den beiden einfach viel zu zeitaufwendig ist.
'json_decode (json_encode (...))' Warum? – Marcus
Auf Ihren Punkt über "* zu zeitaufwendig *" könnten Sie einfach 'if (Anzahl ($ arr)> 1) {// mehrere Elemente} else {// einzelnes Element}' – Marcus
Überprüfen Sie einfach, ob der Wert ist ein Array oder nicht. Wenn es ist, zieh es auseinander (oder implode); Wenn nicht, nehmen Sie den Wert. XML zu JSON Konvertierung wird nur Dinge in Arrays setzen, wenn es mehr als eine von ihnen gibt. Wenn es jedes Mal getan würde, dann wäre jedes einzelne Element in einem Array, und das wäre noch hässlicher. –