array_reduceの使い方

PHPを使った実装作業で、使用することになったarray_reduce関数。

array関数なので配列操作系であることはわかりますが、使ったことも聞いたこともない・・・。

どんな関数か調べてみることに。関数の内容についてはネットで関数名を検索すればヒットするのであっさり発見。見てみると・・・

PHPのarray_reduce()関数は、ユーザー定義関数を再帰的に適用し、配列の全ての要素の値を、ひとつの値にまとめる組み込み関数。

???
書いてあることがよく分からん・・・。もう少し見てみることに。

そしてだいたい分かってきました。array_reduce関数はコールバック関数を用いて対象配列の要素ごとに同じ作業を繰り返し、結果を一つにまとめる関数であることが判明。

簡単に言えば、配列専用のfor文に近い感じです。

関数の構成はこんな感じ。

array_reduce( 対象配列, コールバック関数 );

対象配列の要素ごとにコールバック関数を実行しその結果をまとめると考えるとわかりやすいです。

つまり、こうすれば配列内の数値の合計が取れるということ。

この処理なら、$array配列にある1~5の値をすべて合計した結果が$responseに入ります。

応用すれば、配列内の文字列をすべてつなげるなんてこともできますね。

似たような関数にarray_map関数がありますが、こちらの方が使いやすい印象です。(というより、array_reduceの方しか使われていない)

また、array_reduce関数は連想配列にも対応しています。
使い方次第では連想配列を通常の配列に戻すこともできるので、今後もお世話になりそうな予感・・・。