Функция array_walk_recursive
Функцията array_walk_recursive прилага зададена
функция към всички елементи на многомерен масив.
Връща true при успешно завършване
или false при възникване на грешка.
Първият параметър на функцията
приема масив, а вторият - callback функция.
В callback функцията се предават два параметъра. Като първи параметър се подава стойността на елемента от масива, а като втори - ключът.
Подаденият във функцията масив сам по себе си не се променя. Но това може да се постигне чото предаване на елемента по референция.
Синтаксис
array_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool
Пример
Нека да обходим многомерен масив и да изведем неговите ключове и елементи:
<?php
$arr = [
'a' => 1,
'b' => 2,
'c' => [
'd' => 3,
'e' => 4,
],
];
array_walk_recursive($arr, function($elem, $key) {
echo $key . ' ' . $elem . '<br>';
});
?>
Резултат от изпълнението на кода:
'a 1'
'b 2'
'd 3'
'e 4'
Пример
Нека да обходим масив и да повдигнем неговите елементи на квадрат:
<?php
$arr = [
'a' => 1,
'b' => 2,
'c' => [
'd' => 3,
'e' => 4,
],
];
array_walk_recursive($arr, function(&$elem, $key) {
$elem = $elem ** 2;
});
var_dump($arr);
?>
Резултат от изпълнението на кода:
[
'a' => 1,
'b' => 4,
'c' => [
'd' => 9,
'e' => 16,
],
];
Вижте също
-
функцията
array_walk,
която извиква функция за елементите на масив -
функцията
array_map,
която прилага функция към елементите на масив -
функцията
array_filter,
която филтрира масив -
функцията
array_reduce,
която редуцира масив