Оглавление

14.6.1. Перебор элементов массива без использования циклов

До сих пор мы выводили содержимое массивов с помощью циклов. Того же эффекта можно достичь при использовании функции array_walk(). Она позволяет последовательно применять самостоятельно созданную функцию ко всем  элементам массива. Например, вывод всех элементов массива будет выглядеть так:


function f_print($value, $key) {
   echo $key . ' =&gt; ' . $value . '<br>';
}

$Mass['Один'] = 1;
$Mass['Два'] = 2;
$Mass['Три'] = 3;
$Mass['Четыре'] = 4;
array_walk($Mass, "f_print");
// Выведет: Один => 1<br>Два => 2<br>Три => 3<br>Четыре => 4<br>

Или,  например, можно изменить  значения  всех  элементов массива,  скажем,  прибавив к ним число 10:

 

function f_change(&$value, $key, $var) {
   $value += $var;
}
function f_print($value, $key) {
   echo $key . ' =&gt; ' . $value . '<br>';
}

$Mass['Один'] = 1;
$Mass['Два'] = 2;
$Mass['Три'] = 3;
$Mass['Четыре'] = 4;
array_walk($Mass, "f_change", 10);
array_walk($Mass, "f_print");
// Выведет: Один => 11<br>Два => 12<br>Три => 13<br>Четыре => 14<br>

Чтобы иметь возможность изменить текущее значение элемента массива, необходимо передать в функцию ссылку на него. Это делается путем указания символа & перед именем переменной в описании функции. Переменная $var получает значение, указанное в третьем параметре функции array_walk().

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити