понедельник, 19 ноября 2012 г.

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


До сих пор мы выводили содержимое массивов с помощью
циклов. Того же эффекта можно достичь при использовании
функции 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().



Комментариев нет:

Отправить комментарий