время
|
|
Часть 3 Особенности реализации 67
=> cuatro) [4] => Array([0] => 5[1] => five [2] => cinco))
Существует еще две функции, аналогичные по принципу работы arrayjrap ( ) . Пер-
вая из них array_f ilter. Ее синтаксис:
array array_f ilter (array input [, mixed callback])
Данная функция возвращает массив элементов, т. е. новый массив, при условии,
что каждый элемент был обращен к заданной функции. После этого над ним про-
изводятся операции и он либо входит в новый массив, либо нет. Например, нужно
выбрать из массива элементы значений, остаток от деления на два которых равен
единице, или что-нибудь в этом роде. Так происходит формирование массива. При-
мер работы данной функции:
function foo($var) {
return ($var % 2 == 1) ;
9 Зак. 556
258 Часть IV. PHP-функции
function foos($var) {
return ($var % 2 == 0) ;
}
$arrayl = array ("a"=>l, "b"=>2, "c"=>3, "d"=>4, "e"=>5) ;
$array2 = array( 23, 24, 25, 26, 27, 28, 29, 30);
$odd = array_f liter ($arrayl, "foo");
$even = array_f liter ($array2, "foos") ;
Как видно из примера, в первом случае создается массив, содержащий элемен-
ты массива $arrayl, делящиеся на 2 с остатком, равным 1 . И результат будет
следующий:
$odd = array ("а"=>1, "с"=>3, "е"=>5) ;
Во втором случае создается массив со значениями из массива $аггау2, все значе-
ния которого делятся на 2 без остатка, все остальные значения отбрасываются.
Результат программы:
$even = array(24, 26, 28, 30)
ВНИМАНИЕ
Если работа осуществляется с ассоциативным массивом, то при работе функ-
ции array_f liter () также возвращается массив значения с указателями.
Следующая функция, которую нам необходимо рассмотреть, — array_reduce ( ) .
Синтаксис:
mixed array_reduce (array input,