Как я повторяю вложенный элемент массива? - PullRequest
0 голосов
/ 23 октября 2019

Я не знаю, что я делаю неправильно, я не могу вывести свой элемент массива на экран. Я получаю эту ошибку:

Недопустимое смещение строки 'CreatedDatetime'.

Мой XML выглядит следующим образом через JSON print_r:

Array
(
[ABOUT_VERSIONS] => Array
    (
        [ABOUT_VERSION] => Array
            (
                [CreatedDatetime] => 2019-10-22T22:29:47.7617229Z
                [DataVersionIdentifier] => 201703
            )

    )
)

Мой код:

foreach ($newArr["ABOUT_VERSIONS"]["ABOUT_VERSION"] as $item){
   echo $item["CreatedDatetime"]."<br>";
}

Это кажется таким простым, но у меня есть блок. Я не могу повторить CreatedDatetime ключ.

1 Ответ

0 голосов
/ 23 октября 2019

$item не является массивом, он перебирает два значения в $newArr['ABOUT_VERSION'], т.е. 2019-10-22T22:29:47.7617229Z и 201703. Чтобы отобразить CreatedDatetime, либо получите к нему прямой доступ:

echo $newArr["ABOUT_VERSIONS"]["ABOUT_VERSION"]["CreatedDatetime"] . "<br>";

или выполните сравнение ключей в цикле:

foreach ($newArr["ABOUT_VERSIONS"]["ABOUT_VERSION"] as $key => $value){
   if ($key == "CreatedDatetime") echo $value . "<br>";
}

В обоих случаях выводом будет 2019-10-22T22:29:47.7617229Z.

Демонстрация на 3v4l.org

...