這邊放兩個小例子,然後說明下 array_walk()
的用法。以後有機會,再把類似的幾個函數放一起,談談效率。
function myfunction($value,$key)
{
echo "The key $key has the value $value".PHP_EOL;
}
$a = array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
$a = array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a, function($value, $key) {
echo "The key $key has the value $value".PHP_EOL;
});
ok,上面兩函數的結果是一樣的,只不過一個用的函數,一個用的閉包。
首先:瞭解有這樣一種寫法;
其次:注意下函數中參數的順序,對,就是這樣,第一個是$value
,第二個是$value
然後,我們看下面的例子:
function example(&$value)
{
$value = $value + 5;
}
$arrLearnIds = [1, 2, 3];
array_walk($arrLearnIds, 'example');
var_dump($arrLearnIds);
$arrLearnIds = [1, 2, 3];
array_walk($arrLearnIds, function (&$value) {
$value = $value + 5;
});
var_dump($arrLearnIds);
這裏還是要強調一下取地址符&。因爲是取地址符,所以改變的是數組,這一點要清楚。
然後再看一眼這裏的閉包,會感覺代碼很優美。。。!!!