Как сделать рекурсивный обход массива php — Q&A Хекслет
2026-02-26 20:09 Diff

Для этого можно использовать встроенную функцию 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.