Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
array_walk
(PHP 3 >= 3.0.3, PHP 4, PHP 5)
array_walk - Применить пользовательскую функцию к каждому члену массиваОписание
bool array_walk ( array &array, callback funcname [, mixed userdata] )Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Применяет пользовательскую функцию 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(), изменится, то поведение этой функции станет неопределённым и непредсказуемым.
Пример 1. Пример использования array_walk()
$fruits = array("d" => "lemon", "a" => "orange",
"b" => "banana", "c" => "apple");
function test_alter(&$item1, $key, $prefix)
{ $item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{ echo "$key. $item2<br />\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().
Все функции arrayОписание на ru2.php.net
Описание на php.ru