array_walk Применяет заданную пользователем функцию к каждому элементу массива &reftitle.description; boolarray_walk arrayobjectarray callablecallback mixeduserdata&null; Применяет пользовательскую функцию callback к каждому элементу массива array. array_walk не подвержена влиянию внутреннего указателя массива array. array_walk обойдёт все элементы массива независимо от позиции указателя. &reftitle.parameters; array Входной массив. callback Обычно функция callback принимает два параметра. В качестве первого параметра идет значение элемента массива array, а ключ - в качестве второго. Если требуется, чтобы функция callback изменила значения в массиве, определите первый параметр callback как ссылку. Тогда все изменения будут применены к элементам оригинального массива. Множество встроенных функций (например, strtolower) выводят предупреждение, если им передано больше параметров, чем они ожидают, или которые не могут непосредственно использоваться в callback. Потенциально изменены могут быть только значения массива array; структура самого массива не может быть изменена, то есть нельзя добавить, удалить или поменять порядок элементов. Если callback-функция не соответствует этому требованию, поведение данной функции станет неопределённым и непредсказуемым. userdata Если указан необязательный параметр userdata, он будет передан в качестве третьего параметра в callback-функцию callback. &reftitle.returnvalues; Возвращает &true; &reftitle.errors; Начиная с PHP 7.1.0, в случае если callback-функция требует больше двух параметров (ключ и значение элемента массива), будет выброшено исключение ArgumentCountError. Ранее в таком случае при каждом вызове callback, генерировалась ошибка уровня E_WARNING. &reftitle.examples; Пример использования <function>array_walk</function> "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); function test_alter(&$item1, $key, $prefix) { $item1 = "$prefix: $item1"; } function test_print($item2, $key) { echo "$key. $item2
\n"; } echo "До ...:\n"; array_walk($fruits, 'test_print'); array_walk($fruits, 'test_alter', 'fruit'); echo "... и после:\n"; array_walk($fruits, 'test_print'); ?> ]]>
&example.outputs;
&reftitle.seealso; array_walk_recursive iterator_apply list each call_user_func_array array_map &foreach;