array_map
Applica la funzione callback a tutti gli elementi degli array dati
&reftitle.description;
arrayarray_map
callablecallback
arrayarray1
array...
array_map restituisce un &array; contenente
i risultati dell'applicazione della callback
all'indice corrispondente di array1
(e ... se vengono forniti più array)
usati come argomenti per la callback.
Il numero di parametri che la funzione callback
accetta dovrebbe corrispondere al numero di array
passati ad array_map.
&reftitle.parameters;
callback
Una callable da eseguire per ogni elemento in ogni array.
&null; può essere passato come valore alla callback
per eseguire un'operazione zip su più array.
Se viene fornito solo array1,
array_map restituirà l'array di input.
array1
Un array su cui eseguire la funzione callback.
...
Lista di variabili supplementari di argomenti di array da eseguire nella
funzione callback.
&reftitle.returnvalues;
Restituisce un array contenente i risultati dell'applicazione della funzione
callback all'indice corrispondente di array1
(e ... se vengono forniti più array)
usati come argomenti per la callback.
L'array restituito conserverà le chiavi del parametro array se e solo
se viene passato esattamente un array. Se viene passato più di un array, l'array
restituito avrà chiavi intere sequenziali.
&reftitle.examples;
Esempio di array_map
]]>
Questo fa sì che $b abbia:
1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
]]>
array_map usando una funzione lambda (a partire da PHP 5.3.0)
]]>
2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
]]>
array_map - usando più array
$m];
}
$a = [1, 2, 3, 4, 5];
$b = ['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);
?>
]]>
&example.outputs;
Il numero 1 è chiamato uno in spagnolo
[1] => Il numero 2 è chiamato dos in spagnolo
[2] => Il numero 3 è chiamato tres in spagnolo
[3] => Il numero 4 è chiamato cuatro in spagnolo
[4] => Il numero 5 è chiamato cinco in spagnolo
)
// stampa di $d
Array
(
[0] => Array
(
[1] => uno
)
[1] => Array
(
[2] => dos
)
[2] => Array
(
[3] => tres
)
[3] => Array
(
[4] => cuatro
)
[4] => Array
(
[5] => cinco
)
)
]]>
Di solito quando si usano due o più array, questi dovrebbero essere di uguale lunghezza
in quanto la funzione di callback viene applicata in parallelo agli elementi
corrispondenti.
Se gli array sono di lunghezza diversa, quelli più corti verranno estesi con elementi
vuoti per uguagliare la lunghezza del più lungo.
Un uso interessante di questa funzione è quello di costruire un array di array,
cosa che può essere facilmente ottenuta usando &null;
come nome della funzione callback
Esecuzione di un'operazione zip di array
]]>
&example.outputs;
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
)
)
]]>
callback &null; con solo
array1
]]>
&example.outputs;
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
]]>
array_map - con chiavi stringa
'value'];
function cb1($a) {
return [$a];
}
function cb2($a, $b) {
return [$a, $b];
}
var_dump(array_map('cb1', $arr));
var_dump(array_map('cb2', $arr, $arr));
var_dump(array_map(null, $arr));
var_dump(array_map(null, $arr, $arr));
?>
]]>
&example.outputs;
array(1) {
[0]=>
string(5) "value"
}
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
array(1) {
["stringkey"]=>
string(5) "value"
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
]]>
&reftitle.seealso;
array_filter
array_reduce
array_walk