EDIT: Причина, по которой я использовал json_decode, - это получить его из XML в массив.PHP XML to Array
Так вот моя дилемма:
я получить доступ к API, который возвращает XML, я затем преобразовать его в массив следующим образом:
public function convertXMLtoJSON($xml){
return json_decode(json_encode(simplexml_load_string($xml), true), true);
}
Когда у меня есть один элемент (например :) [ОДИН ЭЛЕМЕНТ XML]
<LineItem>
<field>hello</field>
</LineItem>
Он получает отображается как: [ОДИН ЭЛЕМЕНТ ARRAY]
[LineItem] => Array(
[field] => hello
)
теперь, если у меня есть: [MULTI ЭЛЕМЕНТ XML]
<LineItem>
<field>hello</field>
</LineItem>
<LineItem>
<field>hello part 2</field>
</LineItem>
я получаю: [MULTI ЭЛЕМЕНТ ARRAY]
[LineItem] => Array(
[0] => Array (
[field] => hello
)
[1] => Array (
[field] => hello part 2
)
)
мне нужен первый пример, чтобы быть в массиве, а не просто потому что дифференциация между ними просто будет слишком трудоемкой.
'json_decode (json_encode (...))' Почему? – Marcus
К вашему вопросу о «* слишком трудоемком *» вы могли бы просто «if (count ($ arr)> 1) {// несколько элементов} else {// single element}' – Marcus
Просто проверьте, действительно ли значение массив или нет. Если это так, потяните его на части (или сделайте имплот); если это не так, возьмите значение. Преобразование XML в JSON будет только помещать вещи в массивы, когда их более одного. Если бы он делал это каждый раз, каждый отдельный элемент был бы в массиве, и это было бы еще более уродливым. –