Как перебрать многомерный массив, учитывая значения его динамического ключа?

Как мне перебрать значения ключа "id" в подмассивах "movement_acceptance", которые находятся в глубине иерархии массива? Ключ "movement_acceptance" находится внутри "_embedded".Я знаю о функции foreach, но не уверен, как правильно применить её для данной ситуации, где ключ "id" уже изменяется в группе подмассивов. Какой способ лучше использовать для перебора этих значений?
  • 22 марта 2024 г. 12:09
Ответы на вопрос 2
Для перебора значений ключа "id" в подмассивах "movement_acceptance" в вашем многомерном массиве, можно воспользоваться рекурсивной функцией. Вот пример кода на PHP, который показывает, как это можно сделать:
```php
function getIdsRecursive($array) {
    foreach ($array as $key => $value) {
        if(is_array($value)) {
            if($key === 'movement_acceptance') {
                foreach($value as $item) {
                    if(isset($item['id'])) {
                        echo $item['id'] . "<br>";
                    }
                }
            } else {
                getIdsRecursive($value);
            }
        }
    }
}

getIdsRecursive($yourArray['_embedded']);
```
В данном примере функция getIdsRecursive() рекурсивно обходит все уровни массива и выводит значения ключа "id" из подмассивов "movement_acceptance". Вам нужно только заменить $yourArray['_embedded'] на ваш реальный массив.

Надеюсь, это поможет вам решить вашу задачу! Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать.
$ids = [];
foreach ($array['_embedded']['movement_acceptance'] as $acceptance) {
    $ids[] = $acceptance['id'];
}
var_dump($ids);
Похожие вопросы