【PHP入門】配列をフィルタリングする(array_filter)

書いた人 ヤマシタ


侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは!フリーエンジニアのヤマシタです。

PHPでは配列を使用してさまざまな処理が可能です。

この記事では、

・array_filter関数で配列をフィルタリングする方法
・array_filter関数で連想配列をフィルタリングする方法

という基本的な内容から、

・array_filter関数で配列のNULL要素を削除する方法
・array_filter関数でflagを指定する方法
・array_map関数を使用する方法

などの応用的な使い方に関しても解説していきます。

今回はそんなarray_filter関数の使用方法について、わかりやすく解説します!

配列の要素をフィルタリングする

ここではarray_filter関数を使用して、配列の要素をフィルタリングする方法を解説します。

array_filter関数を使用する

コールバック関数を使用して、配列の要素をフィルタリングする場合にはarray_filter関数を使用します。

array_filter関数は、第一引数にコールバック関数に渡す配列を指定し、第二引数にコールバック関数を指定します。
第三引数にはコールバック関数に何を送るかflagで指定します。

戻り値には、コールバック関数でフィルタリングされた結果の配列を返します。

以下にarray_filter関数を指定して、コールバック関数で配列の要素をフィルタリングする方法を記述します。

サンプルではコールバック関数で、渡された配列の値が300以上の要素を返しています。

実行結果のとおり、コールバック関数でフィルタリングされた値のみが、配列に格納されていることがわかりますね!

nullの要素を排除する

array_filter関数を使用して、配列のNULLの要素を削除したい場合は以下のように記述します。

なお、array_filter関数の引数にstrlen関数を指定することでも、配列のnullや空の要素を簡単に削除することができます。

以下にstrlen関数を使用した、配列のnull要素を削除する方法を記述します。

連想配列の要素をフィルタリングする

array_filter関数は、連想配列や多次元配列も1次元配列同様の使い方ができます。

連想配列や多次元配列の場合は、array_filter関数の第三引数を指定しなかった場合、配列の値のみがコールバック関数に渡されます。

以下に連想配列でarray_filterを使用する方法を記述します。

最初のサンプル同様に連想配列の値も、コールバック関数でフィルタリングされた配列を返していることがわかりますね!

flagを指定する

array_filter関数は、第三引数のflagを指定することで、コールバック関数に配列の何を送るのかを指定することができます。

flagには、以下を指定します。
ARRAY_FILTER_USE_KEY:配列のキーだけをコールバック関数に渡す
ARRAY_FILTER_USE_BOTH:値とキーの両方をコールバック関数に渡す

以下では第三引数にARRAY_FILTER_USE_KEYを指定して、連想配列のキーのみをコールバック関数に渡す方法を記述します。

サンプルでは、コールバック関数で連想配列のキーのみを渡しています。

実行結果のとおり、キーで比較した結果の配列が返されていることがわかりますね!

配列の要素を全て渡す

配列の要素を全てコールバック関数に渡すには、array_filter関数と同様にコールバック関数に配列を渡すarray_map関数を使用します。

array_map関数については、以下の記事で詳しく解説しています!

array関数についてもっと詳しく知りたい方へ

配列を操作するさまざまな関数の使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

ここでは、array_filter関数を使用して、配列の要素をフィルタリングする基本的な方法から、NULLの要素を削除する方法、flagを指定する方法などについて解説しました。

array_filter関数は、配列を指定した条件でフィルタリングしたいときに非常に便利です。

もし、array_filter関数の使用方法を忘れてしまったら、この記事を思い出してくださいね!


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


自分にプログラミングなんて・・・と思っていませんか?

今後10年間で今ある職業の『77%』はなくなると言われています。

人工知能や機械学習を筆頭にVR、AR、ドローンなどの最先端技術の発達はこれからのあなたの働き方に間違いなく影響を与えるでしょう。

将来を見据えてプログラミングができるようになってエンジニアになりたい、自分だけにしかできないクリエイティブな仕事がしたい、、、とお考えの方も少なくないでしょう。

と、同時に「難しそう、、自分にはできないだろう、、、」と諦めている方も多いのではないでしょうか。

弊社マンツーマンレッスンは、お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、オリジナルアプリ開発や、フリーランスとしての仕事獲得まで支援しています。

まずは『無料体験レッスン』で弊社コンサルタントと一緒にあなた専用の学習カリキュラムを考えてみてはいかがでしょうか?

詳しくは下の画像をクリックしてください。

cta_mtm2

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります