[PHP] array_reduce()の便利な使い方

http://madroom-project.blogspot.jp/2014/03/arrayreduce.html

array_reduce()ってどんな時に使うと便利なのかなー。

演算方法をカスタマイズしたい時に便利。

<?php
$a = array_reduce(range(1, 100), function($result, $item) {
if ($item % 2 === 0) { // 偶数だけ加算する
return $result += $item;
}
return $result;
});
echo $a, PHP_EOL; // 2550

あと、文字列の操作もできたり

<?php
$arr = ['a', 'b', 'c', 'A', 'B', 'C'];
$a = array_reduce($arr, function($result, $item) {
if (preg_match('/[a-z]/', $item)) { // 小文字のみ連結
return $result .= $item;
}
return $result;
});
echo $a, PHP_EOL; // abc

連想配列のkeyを判定基準にして足し算したり:http://d.hatena.ne.jp/maeharin/20121108/p1

コメントを残す

コメントを残す