array_map()
遍歷數(shù)組的鍵值,把鍵值依書寫的順序傳遞給函數(shù),收集函數(shù)的返回值,以數(shù)組的形式返回,如果值傳遞一個(gè)數(shù)組的鍵值給函數(shù),那么返回?cái)?shù)組鍵名同傳遞數(shù)組鍵名相同;
如果是多個(gè)數(shù)組同時(shí)傳遞鍵值,那么返回的從0開始的索引數(shù)組;返回的數(shù)組長度同傳遞參數(shù)的最長數(shù)組相同;
不會(huì)修改原始數(shù)組;
基礎(chǔ)語法結(jié)構(gòu):
array_map(callback $callback ,array $array_1 [,array $array_2....])
返回新的數(shù)組,不會(huì)修改原來的數(shù)組;
語法結(jié)構(gòu)1:
array array_map(callback $callback ,array $array)
實(shí)例:
$a_personal_age = array('bill'=>33,'tom'=>20,'jack'=>16);
function get_personal_birth($v){
return 2017-$v;
}
$a_personal_birth = array_map('get_personal_birth',$a_personal_age);
print_r($a_personal_birth);
#output: Array ( [bill] => 1984 [tom] => 1997 [jack] => 2001 );
注意:
返回的數(shù)組鍵名同被遍歷的數(shù)組形同,順序也相同;
不會(huì)改變?cè)袛?shù)組;
語法結(jié)構(gòu)2:
array array_map(callback $callback,array $array_1,array $array_2...)
同時(shí)遍歷多個(gè)數(shù)組元素;
實(shí)例:
$a_cost = array('volvo'=>100,'BMW'=>200,'BENZ'=>220);
$a_price = array('volvo'=>500,'BMW'=>700,'BENZ'=>620);
function get_diff($c,$p){
return $p-$c;
}
print_r(array_map('get_diff',$a_cost,$a_price));
#output : Array ( [0] => 400 [1] => 500 [2] => 400 );
注意:
1.多個(gè)數(shù)組同時(shí)操作的時(shí)候要注意傳遞的順序;
2.返回?cái)?shù)組的鍵名是從0開始的索引數(shù)組;