array_walk
Вызывает функцию для каждого элемента массива.
Синтаксис
array_walk(array|object &$array, callable $callback, mixed $arg = null): trueПараметры
| Параметр | Тип | Описание |
|---|---|---|
| $array | array|object | Массив. |
| $callback | callable | Функция, которая получает значение и ключ. |
| $arg | mixed | Необязательный. Дополнительный аргумент для функции. |
Возвращаемое значение
trueВсегда `true`.
Примеры
Значение и ключ в функции:
<?php
$prices = ['tea' => 250, 'coffee' => 400];
array_walk($prices, function ($price, $name) {
echo $name, ': ', $price, "\n";
});Результат:
tea: 250
coffee: 400Изменение элементов по ссылке:
<?php
$prices = ['tea' => 250, 'coffee' => 400];
array_walk($prices, function (&$price) {
$price *= 2;
});
echo json_encode($prices);Результат:
{"tea":500,"coffee":800}Примечания
В отличие от array_map(), функция не создаёт новый массив и передаёт в обработчик ключ. Обычный цикл foreach делает то же самое и читается проще.
См. также
- array_map — Применяет функцию к каждому элементу массива.
- array_reduce — Сводит массив к одному значению.
Вопросы и ответы по теме
В учебнике
- Функции для массивов — Обработка массивов в PHP без циклов — array_map, array_filter, array_reduce, поиск и срезы.