array_walk_recursive

funkcja

Wywołuje callback dla każdego elementu zagnieżdżonej tablicy wielowymiarowej, rekurencyjnie wchodząc w podelementy tablicowe.

array_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool

array_walk_recursive działa jak array_walk, ale nie zatrzymuje się na pierwszym poziomie — rekurencyjnie schodzi w każdą zagnieżdżoną tablicę i wywołuje callback dla każdego elementu, który nie jest tablicą. Wewnętrzne tablice są pomijane jako argumenty callbacku i służą jedynie jako kontenery do rekursji.

Callback przyjmuje &$value (przez referencję, co pozwala modyfikować element w miejscu), opcjonalnie $key i opcjonalny $arg przekazany jako trzeci argument funkcji. Funkcja modyfikuje oryginalną tablicę — nie zwraca nowej kopii.

<?php
declare(strict_types=1);

$dane = [
    'imie' => '  Ola  ',
    'adres' => ['miasto' => '  Gdansk  ', 'ulica' => '  Dluga  '],
];

array_walk_recursive($dane, function (&$v): void {
    if (is_string($v)) {
        $v = trim($v);
    }
});

print_r($dane);
// wynik:
// Array
// (
//     [imie] => Ola
//     [adres] => Array
//         (
//             [miasto] => Gdansk
//             [ulica] => Dluga
//         )
// )
📘 Naucz się w lekcji →