Как сделать рекурсивный обход массива php
Ответы
Roman Ashikov
17 марта 2022
Для этого можно использовать встроенную функцию array_walk_recursive(). Первым параметром она принимает массив, а вторым колбек, который будет выполнен на каждом элементе массива. Колбек же, в свою очередь, принимает два параметра: элемент и его ключ. Ниже небольшой пример с распечаткой элементов вложенного массива на экран.
<?php
$collection = [
'root' => [
'key1' => 'value1',
'key2' => 'value2',
'key3' => [
'key4' => 'value4'
]
]
];
array_walk_recursive($collection, function ($value, $key) {
var_dump("{$key} -> {$value}");
});
// => string(14) "key1 -> value1"
// => string(14) "key2 -> value2"
// => string(14) "key4 -> value4"
Стоит сказать, что если значение ключа содержит массив, то этот ключ не передаётся в колбек. Потому мы и не видим в выводе ключей root
и key3
.
0
0