(PHP 4 >= 4.0.6)
array_map --
Aplica uma função em todos os elementos dos arrays dados
Descrição
array
array_map ( mixed callback, array arr1 [, array arr2...])
array_map() retorna um array contendo todos
os elementos de arr1 depois de aplicada
a função callback em cada um. O número de parâmetros que a função
callback aceita deve coincidir com o número de arrays passados para a
array_map()
Exemplo 1. Exemplo de array_map() function cubo($n) {
return $n*$n*$n;
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cubo", $a); |
|
Isso resultará em $b contendo
array (1, 8, 27, 64, 125);
Exemplo 2. array_map() - usando mais arrays function mostrar_Espanhol($n, $m) {
return "O número $n é chamado de $m na Espanha";
}
function map_Espanhol($n, $m) {
return array ($n => $m);
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("mostrar_Espanhol", $a, $b);
print_r($c);
// mostrará:
// Array
// (
// [0] => O número 1 é chamado de uno na Espanha
// [1] => O número 2 é chamado de dos na Espanha
// [2] => O número 3 é chamado de tres na Espanha
// [3] => O número 4 é chamado de cuatro na Espanha
// [4] => O número 5 é chamado de cinco na Espanha
// )
$d = array_map("map_Espanhol", $a , $b);
print_r($d);
// will output:
// Array
// (
// [0] => Array
// (
// [1] => uno
// )
//
// [1] => Array
// (
// [2] => dos
// )
//
// [2] => Array
// (
// [3] => tres
// )
//
// [3] => Array
// (
// [4] => cuatro
// )
//
// [4] => Array
// (
// [5] => cinco
// )
//
// ) |
|
Normalmente quando se usa dois ou mais arrays, eles devem ter o mesmo tamanho
porque a função callback é aplicada paralelamente aos elementos
correpondentes.
Se os arrays tem tamanhos diferentes, o menos array será extendido com
elementos em branco.
Um modo interessante de usar essa função é na construção de um array de
arrays, o que pode ser facilmente feito usando NULL
como o nome da função callback.
Exemplo 3. Criando um array de arrays $a = array(1, 2, 3, 4, 5);
$b = array("um", "dois", "tres", "quatro", "cinco");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
// mostrará:
// Array
// (
// [0] => Array
// (
// [0] => 1
// [1] => um
// [2] => uno
// )
//
// [1] => Array
// (
// [0] => 2
// [1] => dois
// [2] => dos
// )
//
// [2] => Array
// (
// [0] => 3
// [1] => tres
// [2] => tres
// )
//
// [3] => Array
// (
// [0] => 4
// [1] => quatro
// [2] => cuatro
// )
//
// [4] => Array
// (
// [0] => 5
// [1] => cinco
// [2] => cinco
// )
//
// ) |
|
Veja também array_filter(),
array_reduce().