До сих пор мы выводили содержимое массивов с помощью
циклов. Того же эффекта можно достичь при использовании
функции array_walk(). Она позволяет последовательно
применять самостоятельно созданную функцию ко всем
элементам массива. Например, вывод всех элементов
массива будет выглядеть так:
function f_print($value, $key) {
echo $key . ' => ' . $value . '<br>';
}
$Mass['Один'] = 1;
$Mass['Два'] = 2;
$Mass['Три'] = 3;
$Mass['Четыре'] = 4;
$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 . ' => ' . $value . '<br>';
}
$Mass['Один'] = 1;
$Mass['Два'] = 2;
$Mass['Три'] = 3;
$Mass['Четыре'] = 4;
$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().
Комментариев нет:
Отправить комментарий