Функция array_walk() в PHP
Пример
Применение пользовательской функции к каждому элементу массива:
<?php function myfunction($value,$key) { echo "The key $key has the value $value<br>"; } $a=array("a"=>"red","b"=>"green","c"=>"blue"); array_walk($a,"myfunction"); ?>
Определение и использование
Функция array_walk() применяет пользовательскую функцию к каждому элементу массива. В функции ключ и значение массива являются параметрами.
Комментарий:Вы можете изменить значение элемента массива, указав первый параметр пользовательской функции как ссылку: &$value (см. пример 2).
Совет:Если необходимо работать с более глубокими массивами (один массив содержит другой массив), используйте array_walk_recursive() функция.
Синтаксис
array_walk(array,myfunction,userdata...)
Параметры | Описание |
---|---|
array | Обязателен. Определяет массив. |
myfunction | Обязателен. Имя пользовательской функции. |
userdata,... | Дополнительные. Определяет параметры пользовательской функции. Вы можете передать этой функции любое количество параметров. |
Описание
функция array_walk() применяет функцию-обратного вызова к каждому элементу массива. В случае успеха возвращает TRUE, в противном случае FALSE.
В типичном случае myfunction принимает два параметра.array Значение параметра является первым, а имя ключа — вторым. Если предоставлены дополнительные параметры userdata Будет передан в качестве третьего параметра функции-обратного вызова.
если myfunction функции требует больше параметров, чем указано, при каждом вызове array_walk() myfunction всегда генерируется ошибка уровня E_WARNING. Эти предупреждения можно подавить, добавив оператор ошибки PHP перед вызовом array_walk() или using error_reporting().
Комментарий:Если回调 функция должна напрямую действовать на значения массива, можно определить первый параметр回调 функции как ссылку: &$value. (См. пример 3)
Комментарий:Сочетать имя ключа и userdata передается в myfunction в PHP 4.0 была добавлена.
Технические детали
Возвратное значение: | В случае успеха возвращает TRUE, в противном случае FALSE. |
PHP версия: | 4+ |
Более примеров
Пример 1
Установить параметр:
<?php function myfunction($value,$key,$p) { echo "\$key $p $value<br>"; } $a=array("a"=>"red","b"=>"green","c"=>"blue"); array_walk($a,"myfunction","has the value"); ?>
Пример 2
Изменить значение элемента массива (обратите внимание на &$value):
<?php function myfunction(&$value,$key) { $value="yellow"; } $a=array("a"=>"red","b"=>"green","c"=>"blue"); array_walk($a,"myfunction"); print_r($a); ?>