(PHP 4 >= 4.0.6)
array_map --
Applica la funzione callback a tutti gli elementi dell'array dato
Descrizione
array array_map
(mixed callback, array arr1 [, array
arr2...])
array_map() restituisce un array
contenente tutti gli elementi di arr1
dopo che è stata loro applicata la funzione callback.
Il numero di parametri che la funzione callback accetta deve
corrispondere al numero di array passati alla funzione array_map()
Esempio 1. Esempio di array_map()
function cubo($n) {
return $n*$n*$n;
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cubo", $a);
|
|
L'array $b conterrà
array (1, 8, 27, 64, 125);
Esempio 2. array_map() - usare più array
function mostra_Spagnolo($n, $m) {
return "Il numero $n si dice $m in Spagnolo";
}
function mappa_Spagnolo($n, $m) {
return array ($n => $m);
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("mostra_Spagnolo", $a, $b);
print_r($c);
// darà:
// Array
// (
// [0] => Il numero 1 si dice uno in Spagnolo
// [1] => Il numero 2 si dice dos in Spagnolo
// [2] => Il numero 3 si dice tres in Spagnolo
// [3] => Il numero 4 si dice cuatro in Spagnolo
// [4] => Il numero 5 si dice cinco in Spagnolo
// )
$d = array_map("mappa_Spagnolo", $a , $b);
print_r($d);
// darà:
// Array
// (
// [0] => Array
// (
// [1] => uno
// )
//
// [1] => Array
// (
// [2] => dos
// )
//
// [2] => Array
// (
// [3] => tres
// )
//
// [3] => Array
// (
// [4] => cuatro
// )
//
// [4] => Array
// (
// [5] => cinco
// )
//
// )
|
|
Generalmente, quando si usano due o più array, questi devono avere eguale lunghezza
in quanto la funzione callback viene applicata in parallelo agli elementi
corrispondenti.
Se gli array sono di lunghezza diversa, il più corto verrà esteso
con elementi vuoti.
Un uso interessante di questa funzione è quello di costruire un array di array,
cosa che pouò essere facilmente ottenuta usando null
come nome della funzione callback
Esempio 3. Array_map() - creare un array di array
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "due", "tre", "quattro", "cinque");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
// darà:
// Array
// (
// [0] => Array
// (
// [0] => 1
// [1] => uno
// [2] => uno
// )
//
// [1] => Array
// (
// [0] => 2
// [1] => due
// [2] => dos
// )
//
// [2] => Array
// (
// [0] => 3
// [1] => tre
// [2] => tres
// )
//
// [3] => Array
// (
// [0] => 4
// [1] => quattro
// [2] => cuatro
// )
//
// [4] => Array
// (
// [0] => 5
// [1] => cinque
// [2] => cinco
// )
//
// )
|
|
Vedere anche array_filter(),
array_reduce().