Untitled Document

Учебник РНР
Назад Вперёд

array_map

(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().


Назад Оглавление Вперёд
array_keysВверхarray_merge_recursive
Платформу клиент-сервер | ActiveX-компоненты | Базы данных | Конструктор форм | Электро | ТОЭ | Linux | Интегралы | Лекции физика | Windows 2003 | Архитектура ЭВМ | Рисунок | Световые волны | Операционные системы
Pascal | Эксперт | Учебник Java | Кодирование | Пефирия ПК | Информатика | Сети | Моделирование | Язык SQL Расчет надежности | Задачи