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