array_walk Применяет пользовательскую функцию к каждому элементу массива &reftitle.description; boolarray_walk arrayarray callbackfuncname mixeduserdata Применяет пользовательскую функцию funcname к каждому элементу массива array. array_walk не подвержена влиянию внутреннего указателя массива array. array_walk обойдёт все элементы массива независимо от позиции указателя. &reftitle.parameters; array Входной массив. funcname Обычно функция funcname принимает два параметра. В качестве первого параметра идет значение элемента массива array, а ключ - в качестве второго. Если требуется, чтобы функция funcname изменила значения в массиве, определите первый параметр funcname как ссылку. Тогда все изменения будут применены к элементам оригинального массива. Множество встроенных функций (например, strtolower) выводят предупреждение, если им передано больше параметров, чем они ожидают, или которые не могут непосредственно использоваться в funcname. Потенциально изменены могут быть только значения массива array; структура самого массива не может быть изменена, то есть нельзя добавить, удалить или поменять порядок элементов. Если callback-функция не соответствует этому требованию, поведение данной функции станет неопределённым и непредсказуемым. userdata Если указан необязательный параметр userdata, он будет передан в качестве третьего параметра в callback-функцию funcname. &reftitle.returnvalues; &return.success; &reftitle.errors; Если функция funcname требует больше параметров, чем передано на самом деле, каждый раз, когда array_walk будет вызывать funcname, будет генерироваться ошибка уровня E_WARNING. Эти предупреждения могут быть подавлены добавлением оператора управления ошибками PHP @ в вызов array_walk, или использованием error_reporting. &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 create_function list each call_user_func_array array_map &seealso.callback; &foreach;