 |
(PHP
4 >= 4.0.6) array_map - применяется обратный вызов/callback элементов
данного массива. Описаниеarray array_map
(mixed callback, array arr1 [, array arr2...]) array_map() возвращает
массив, содержащий все элементы массива arr1 после применения
callback-функции к каждому из них. Количество параметров, принимаемых callback-функцией,
должно совпадать с количеством массивов, переданных в array_map(). Пример
1. array_map()function
cube($n) { return $n*$n*$n; } $a = array(1, 2, 3, 4, 5); $b = array_map("cube",
$a); print_r($b); |
Тогда $b будет:
Array ( [0] => 1 [1] => 8 [2] => 27 [3]
=> 64 [4] => 125 ) | |
Пример 2. array_map() - использование массивов
function show_Spanish($n, $m) { return "The number $n is called $m in Spanish";
} function map_Spanish($n, $m) { return array ($n => $m); } $a = array(1,
2, 3, 4, 5); $b = array("uno", "dos", "tres", "cuatro", "cinco"); $c = array_map("show_Spanish",
$a, $b); print_r($c); $d = array_map("map_Spanish", $a , $b); print_r($d); |
Это
даст: //
printout для $c Array ( [0] => The number 1 is called uno in Spanish [1] =>
The number 2 is called dos in Spanish [2] => The number 3 is called tres in
Spanish [3] => The number 4 is called cuatro in Spanish [4] => The number
5 is called cinco in Spanish ) // printout для $d Array ( [0] => Array ( [1]
=> uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] =>
tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco
) ) | |
Обычно, при использовании двух
или более массивов, они должны быть равной длины, поскольку callback-функция применяется
параллельно к соответствующим элементам. Если массивы разных размеров, меньший
будет дополнен пустыми элементами. Интересно использовать эту функцию для
конструирования массива массивов, что легко можно выполнить с помощью NULL
в качестве имени callback-функции. Пример
3. Создание массива массивов
$a = array(1, 2, 3, 4, 5); $b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco"); $d = array_map(null, $a,
$b, $c); print_r($d); |
|
Вывод программы:
Array ( [0] => Array ( [0] => 1 [1] => one [2] => uno ) [1]
=> Array ( [0] => 2 [1] => two [2] => dos ) [2] => Array (
[0] => 3 [1] => three [2] => tres ) [3] => Array ( [0] =>
4 [1] => four [2] => cuatro ) [4] => Array ( [0] => 5 [1] =>
five [2] => cinco ) ) |
См. также array_filter()
и array_reduce(). |  |