介紹php array_map
Published in
2 min readJul 16, 2017
有時候需要對array做一點另外的處理,譬如為每一個value做另外的處理:
$nameAry = ['Hong', 'Peiwen'];
$helloNameAry = array();
foreach ($nameAry as $name) {
$helloNameAry[] = 'hello, ' . $name;
}
var_dump($helloNameAry);
幫每一個name都加上一個hello,結果會是:
但這樣一來可讀性很低,而且需要多新增一個$helloNameAry的參數去存result。
這時候array_map就能派上用場了:
function addHello($name)
{
return 'hello, ' . $name;
}
$nameAry = ['Hong', 'Peiwen'];
$nameAry = array_map('addHello', $nameAry);
var_dump($nameAry);
這裏array_map會遍歷所有array的value去跑callback function,這裡的callback function指的是addHello,這樣寫的話,不僅重新parse array value的function可以複用,而且寫起來也比較優雅。
如果不想另外另一個function的話,也可以直接寫在array_map的parameter裡面:
$nameAry = ['Hong', 'Peiwen'];
$nameAry = array_map(function ($v) {
return 'hello, ' . $v;
}, $nameAry);
var_dump($nameAry);
$v就是遍歷$nameAry裏的value,結果都會是: