介紹php array_map

Chih Hong, Chen
Hong’s Technical Blogs
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,結果都會是:

參考資料:

http://php.net/manual/en/function.array-map.php

--

--