Функции за работа с масиви
PHP Manual

array_walk

(PHP 4, PHP 5)

array_walkПрилага потребителска функция към всеки елемент на даден масив

Описание

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

Прилага потребителската функция funcname към всеки елемент на масива array .

array_walk() не зависи от вътрешния указател на масива array . array_walk() ще обходи целия масив независимо от положението на указателя.

Параметри

array

Входният масив.

funcname

Обикновено funcname приема два параметъра. Стойността на параметъра array като първи и ключ/индекс като втори.

Забележка: Ако е необходимо функция funcname да работи с действителните стойности на масива, е необходимо да се предаде по референция първия параметър на funcname . Тогава всички промени на тези елементи ще се отразят на оригиналния масив.

Потребителите не могат да променят самия масив от обратно-извикващата функция т.е. да се добавят/изтриват елементи, унищожават елементи и т.н. Ако масивът, върху който се прилага array_walk() се промени, поведението на тази функция става непредвидимо.

userdata

Ако е установен незадължителният параметър userdata , то той ще бъде предаден като трети параметър на функцията за обратно извикване funcname .

Връщани стойности

Връща TRUE при успех или FALSE при неуспех.

Грешки/Изключения

Ако функция funcname изисква повече параметри отколкото са и предадени, ще се генерира грешка от ниво E_WARNING при всяко извикване на funcname от страна на функцията array_walk(). Извеждането на тези предупреждения може да се забрани, като се използва оператора @ пред функция array_walk() или посредством функция error_reporting().

Дневник на промените

Версия Описание
4.0.0 Добавено е предаване на ключа и userdata към funcname .

Примери

Example #1 Пример за array_walk()

<?php
$fruits 
= array("d" => "лимон""a" => "портокал""b" => "банан""c" => "ябълка");

function 
test_alter(&$item1$key$prefix)
{
    
$item1 "$prefix$item1";
}

function 
test_print($item2$key)
{
    echo 
"$key$item2<br />\n";
}

echo 
"Преди ...:\n";
array_walk($fruits'test_print');

array_walk($fruits'test_alter''плод');
echo 
"... и след:\n";

array_walk($fruits'test_print');
?>

Примерът по-горе ще изведе:

Преди ...:
d. лимон
a. портокал
b. банан
c. ябълка
... и след:
d. плод: лимон
a. плод: портокал
b. плод: банан
c. плод: ябълка

Вж. също


Функции за работа с масиви
PHP Manual