проблема с SimpleXML и вложенными массивами - PullRequest
0 голосов
/ 23 октября 2010

У меня проблема с ПРОСТЫМ XML.Кажется, у меня есть массив с дампом всего объекта.Однако, когда я пытаюсь получить доступ к массиву, я получаю обратно один элемент массива.

Вот полный дамп:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [type] => array
        )

    [person] => Array
        (
            [0] => SimpleXMLElement Object
                (
                 ..........................
                ),
            [1] => SimpleXMLElement Object
                (
                 ..........................
                )
        )
)

, когда я пытаюсь получить доступ к массиву person$ xml-> person, вместо получения массива, я получаю первый элемент обратно.Есть идеи?

1 Ответ

0 голосов
/ 04 февраля 2011

Из документации SimpleXML Basic в документации по PHP:

ПРИМЕЧАНИЕ: Свойства ($xml->movie в предыдущем примере) не являются массивами. Это повторяемые и доступные объекты.

Итак, в вашем случае $xml->person на самом деле не массив, а просто повторяемый объект. Его можно легко преобразовать в массив с помощью:

$persons = array();
foreach ($xml->person as $person) {
    $persons[] = $person;
}
...