blogPHPでWEB+DBシステムの開発をやっています。使うのがおなじみです。この方法でも良いのですが、PHPには、それ以外にも配列を走査する関数やライブラリがあります。ここでは、配列を走査して処理を行う方法を見てみましょう。サンプル仕様このエントリで以下の配列を処理対象とします。array.phpで保存されている想定です。]];この配列について処理を行います。配列内に連想配列が格納されており、nameとyearというキーを持つyearが、2000以上の要素のみ、結果配列に格納する結果配列には、nameとyearを連結した文字列を格納する求める結果は、以下になります。ある手続き的なPHPコードですね。foreachで配列を回して、yearが2000以上の場合だけ、結果配列に値を入れています。array_mapとarray_filter関数があるので、これを使います。実装は下記になります。array_filterとarray_mapを使うので、それぞれ配列の要素をフィルタリングする、要素に処理を行い、結果配列を格納するといった意図がより明確になります。行に分かれており、中間の結果を保持する一時変数が必要になるのが難点です。行にまとめると下記になります。良さそうですが、このコードをぱっと見て、array_filterが先に適用されるのと認識できるでしょうか。Illuminate\Support\Collectionクラスを使います。構成しているパッケージの一つで、フレームワークを使わずとも、このパッケージ単体でも利用することができます。updateを実行します。}}Illuminate\Support\Collectionを使うことで、メソッドチェインで配列を操作することができます。実装すると下記のようになります。filterメソッドでフィルタリングを行い、その結果配列に対してmapメソッドを実行して、結果配列の要素を作成していることが分かります。こちらもメソッドチェインで配列への操作を行うことができます。updateを実行します。使って、実装すると、下記のようになります。配列を取り込むところ以外は、Illuminate\Support\Collectionと全く一緒になりました。つのパターンで配列を走査して、結果配列を求めるという処理を書いてみました。配列の要素を走査していくという汎用的な役割なので、そのループの中で様々な処理を書くことができます。array系関数やライブラリは、それぞれのメソッドで用途や目的が決まっているので、どのような処理を行い、結果、どのような解を求めているのが分かりやすいです。いう概念は、多くのプログラミング言語で利用されており、こうした概念をおさえておくと、別の言語でコードを書いたり、読んだりする際に、意図を汲むことができ理解しやすくなります。書くことがダメだというわけではなく、それ以外の書き方が、PHPにもあるということを知っておくということが大事ですね。ライクなインターフェースを持ち、実際に使い方も似ています。この2つで大きく違うのが、評価のタイミングです。mapメソッドを実行したタイミングで即時に評価され、処理が行われます。