تابع array_map
ساختار :
array array_map ( callback $callback , array $arr1 [, array $... ] )
توضيح از Manual :
array_map() returns an array containing all the elements of arr1 after applying the callback function to each one. The number of parameters that the callback function accepts should match the number of arrays passed to the array_map()
اين تابع دو ورودي داره ، اولي اسم يك تابع و دومي يك آرايه
اين تابع شبيه همون array_walk هست تقريبا
خروجي اين تابع همون آرايه ورودي هست با اين تفاوت كه تابعي رو كه به عنوان ورودي اول وارد كرديم ، روي عناصرش تاثير گذاشته.
مثال 1 :
کد PHP:
<?php
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>
کد:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
در مثال بالا تابع cube كارش اينه كه يك عدد ميگيره و به توان 3 ميرسونه (3 بار در خودش ضرب مي كنه)
حالا ما يك آرايه داريم و ميخوايم تك تك عناصرش رو به توان 3 برسونيم.درسته كه با foreach يا for يا روش هاي ديگه ميتونيم اين عمل رو انجام بديم ، اما خيلي ساده مي بينيم در خط 8 اين عمل يك باره انجام شده
مثال هاي بعدي رو توضيح نمي دم ، خودتون خروجي ها رو مقايسه كنيد:
کد PHP:
<?php
$func = function($value) {
return $value * 2;
};
print_r(array_map($func, range(1, 5)));
?>
کد:
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
توجه : تابع range رو در ادامه توضيح مي دم.
مثال 3 :
کد PHP:
<?php
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 of $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 of $d
Array
(
[0] => Array
(
[1] => uno
)
[1] => Array
(
[2] => dos
)
[2] => Array
(
[3] => tres
)
[3] => Array
(
[4] => cuatro
)
[4] => Array
(
[5] => cinco
)
)
مثال 4 :
کد PHP:
<?php
$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
)
)
مثال 5:
کد PHP:
<?php
$arr = array("stringkey" => "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));
?>
کد:
array(1) {
["stringkey"]=>
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"
}
}
تابع range:
array range ( mixed $low , mixed $high [, number $step ] )
اين تابع يك آرايه ايجاد مي كنه!آرايه اي كه شامل ارقام يا رشته هاي دلخواه ما در يك بازه(رنج) مشخص هست
ورودي سوم تابع مرحله پيشرف هست.اگر مثبت باشه در هر مرحله به اون اندازه جلو ميريم واگر منفي يا وارد نشده باشه يا ... باشه 1 در نظر گرفته ميشه؛اين قضيه در مثال به وضوح ديده ميشه
کد PHP:
<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
echo $number;
}
// The step parameter was introduced in 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
echo $number;
}
// Use of character sequences introduced in 4.1.0
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a', 'i') as $letter) {
echo $letter;
}
// array('c', 'b', 'a');
foreach (range('c', 'a') as $letter) {
echo $letter;
}
?>
توجه : مثال ها و منبع مطلب Manual سايت رسمي مي باشد 
سپاس