array_map
Застосовує зворотній виклик до всіх елементів зазначених масивів
&reftitle.description;
arrayarray_map
callablecallback
arrayarray1
array...
array_map повертає масив, що вміщує всі елементи
array1 після застосування
callback-функції до кожного елемента. Кількість параметрів,
які приймає callback-функція повинна
відповідати кількості масивів переданих до array_map
&reftitle.parameters;
callback
Callback-функція, що запускається для кожного елемента в кожному з переданих масивів.
array1
Масив, до якого застосовується callback-функція.
...
Змінний список масива аргументів, до яких застосовується
callback-функція.
&reftitle.returnvalues;
Повертається масив, що містить всі елементи з масива array1
після застосування callback-функції до кожного з них.
&reftitle.examples;
Використовуючи array_map, піднесення ряду чисел з масива в куб
]]>
Це створить $b, що має:
1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
]]>
Використання array_map разом з lambda-функцією (починаючи з PHP 5.3.0)
]]>
2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
]]>
Використання array_map - робота з більшою кількістю масивів
$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);
?>
]]>
&example.outputs;
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
)
// вивід $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-функції
Створення масива масивів
]]>
&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
)
)
]]>
Якщо масив-аргумент містить рядкові ключі, то результуючий
масив буде містити рядкові ключі тоді, і тільки тоді, коли передається
рівно один масив. Якщо передано більше одного аргумента, то результуючий масив
буде завжди мати цілочисельні (integer) ключі.
Використання array_map з рядковими ключами
"value");
function cb1($a) {
return array ($a);
}
function cb2($a, $b) {
return array ($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