array_walk

(PHP 4, PHP 5)

array_walkПрименяет пользовательскую функцию к каждому элементу массива

Описание

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

Применяет пользовательскую функцию funcname к каждому элементу массива array.

array_walk() не подвержена влиянию внутреннего указателя массива array. array_walk() обойдёт все элементы массива независимо от позиции указателя.

Список параметров

array

Входной массив.

funcname

Обычно функция funcname принимает два параметра. В качестве первого параметра идет значение элемента массива array, а ключ - в качестве второго.

Замечание:

Если требуется, чтобы функция funcname изменила значения в массиве, определите первый параметр funcname как ссылку. Тогда все изменения будут применены к элементам оригинального массива.

Замечание:

Множество встроенных функций (например, strtolower()) выводят предупреждение, если им передано больше параметров, чем они ожидают, или которые не могут непосредственно использоваться в funcname.

Потенциально изменены могут быть только значения массива array; структура самого массива не может быть изменена, то есть нельзя добавить, удалить или поменять порядок элементов. Если callback-функция не соответствует этому требованию, поведение данной функции станет неопределённым и непредсказуемым.

userdata

Если указан необязательный параметр userdata, он будет передан в качестве третьего параметра в callback-функцию funcname.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Если функция funcname требует больше параметров, чем передано на самом деле, каждый раз, когда array_walk() будет вызывать funcname, будет генерироваться ошибка уровня E_WARNING. Эти предупреждения могут быть подавлены добавлением оператора управления ошибками PHP @ в вызов array_walk(), или использованием error_reporting().

Примеры

Пример #1 Пример использования array_walk()

<?php
$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 
"До ...:\n";
array_walk($fruits'test_print');

array_walk($fruits'test_alter''fruit');
echo 
"... и после:\n";

array_walk($fruits'test_print');
?>

Результат выполнения данного примера:

До ...:
d. lemon
a. orange
b. banana
c. apple
... и после:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

Смотрите также

  • array_walk_recursive() - Рекурсивно применяет пользовательскую функцию к каждому элементу массива
  • iterator_apply() - Call a function for every element in an iterator
  • create_function() - Создаёт анонимную (лямбда) функцию
  • list() - Присваивает переменным из списка значения подобно массиву
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • call_user_func_array() - Вызывает пользовательскую функцию с массивом параметров
  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • информация о типе callback
  • foreach


Участник рейтинга Тэглайн 2010