array_walk
Применить пользовательскую функцию к каждому члену массива
Описаниеboolarray_walkarray&arraycallbackfuncnamemixeduserdata
&return.success;
Применяет пользовательскую функцию funcname к каждому
элементу массива array. Обычно у функции
funcname два параметра.
Значение массива array в качестве первого параметра, и
ключ/индекс в качестве второго. Если указан дополнительный параметр userdata,
он будет передан в качестве третьего параметра в
функцию обратного вызова funcname.
Если в функцию funcname должно быть передано больше параметров,
чем передано на самом деле, ошибка уровня
E_WARNING будет генерироваться каждый раз как array_walk
будет вызывать funcname. Эти предупреждения могут быть подавлены добавлением
оператора управления ошибками PHP
@ в вызов
array_walk, или использованием
error_reporting.
Если требуется, чтобы функция funcname изменила
значения в массиве, определите первый параметр
funcname как
ссылку. Тогда
все изменения будут применены к элементам массива.
Передача в funcname параметров key и userdata была
добавлена в версии 4.0.0
array_walk не изменяет внутренний
указатель массива array.
array_walk обойдёт все элементы массива
независимо от позиции указателя. Для того чтобы сбросить указатель, используйте
функцию reset. В PHP 3
array_walk сбрасывает указатель.
Вы не сможете изменить непосредственно массив при помощи функции обратного вызова,
то есть добавить и удалить элементы, уничтожить значения элементов и т.д. Если
массив, к которому применяется array_walk, изменится,
то поведение этой функции станет неопределённым и непредсказуемым.
Пример использования array_walk
"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 "Before ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";
array_walk($fruits, 'test_print');
?>
]]>
Вывод вышеприведённой программы:
См. также array_walk_recursive,
create_function,
list,
foreach,
each,
call_user_func_array и
array_map.