П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 179517 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 77434 раз(а).

Учебник HTML.
Просмотров 75113 раз(а).

Руководство по PHP5.
Просмотров 46150 раз(а).

Хостинг через призму DNS.
Просмотров 53387 раз(а).

Подборка текстов стандартных документов.
Просмотров 46135 раз(а).

Учебник PHP - Самоучитель
Просмотров 52296 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 52847 раз(а).

Внешние атаки...
Просмотров 42761 раз(а).

Учебник PHP.
Просмотров 38280 раз(а).

SSI в примерах.
Просмотров 28381 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Массивы

Функция array_walk()



array_walk()

Достаточно важная функция, позволяющая применять пользовательскую функцию к каждому элементу массива.

Синтаксис:

bool array_walk(array arr, callback func [, mixed userdata])

Как видно из синтаксиса этой функции, она применяет пользовательскую функцию func к каждому элементу массива arr. В пользовательскую функцию передаются два или три аргумента: значение текущего элемента, его индекс и аргумент userdata. Последний аргумент является необязательным. Заметим, что в случае, если func требует более трех аргументов, при каждом ее вызове будет выдаваться предупреждение, и, чтобы они не выдавались, нужно поставить знак "@" перед функцией array_walk(). Заметим также, что функция func получает значения и индексы массива arr таким образом, что не может их изменять. Если возникает такая необходимость, нужно передавать аргумент arr по ссылке. В этом случае все изменения отразятся в массиве.

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

Пример:

<?
   $name = array ("m"=>"maks", "i"=>"igor", "s"=>"sergey");
   function print_array ($item, $key)
   {
      echo "$key=>$item<br>\n";
   }
   array_walk ($name, 'print_array');
?>

И что вышло:

Результат:

m=>maks
i=>igor
s=>sergey

Важное замечание. Вообще говоря, в приведенном выше коде, есть, скажем так неточность. А именно – мы не установили курсор массива в начало массива, и перед тем, как вызывать функцию array_walk() надо вызывать функцию reset() для этой цели, потому что array_walk() начинает работать с того элемента, на котором находится курсор массива.

Давайте теперь возьмем массив, и увеличим значения каждого его элемента на единицу.

Пример:

<?
   $number = array ("1"=>"15", "2"=>"20", "3"=>"25");
   function printarray ($item, $key) 
   {
      echo "$key=>$item<br>\n";
   }
   function add_array (&$item, $key) 
   // параметр $item передаем по ссылке, так как            
   // его нам надо изменять
   {
      $item = $item + 1;
   }
   echo("Before:<br>");
   array_walk ($number, 'printarray');
   echo("After:<br>");
   array_walk ($number, 'add_array');
   array_walk ($number, 'printarray');
?>

Результат:

Before:
1=>15
2=>20
3=>25
After:
1=>16
2=>21
3=>26

Назад | Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru