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
// )
// )