【PHP入門】配列をフィルタリングする(array_filter)ヤマシタ2017/5/62018/12/14PHPでは配列を使用してさまざまな処理が可能です。・array_map関数を使用する方法などの応用的な使い方に関しても解説していきます。まとめ配列の要素をフィルタリングするここでは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関数を使用します。2018年9月4日まとめここでは、array_filter関数を使用して、配列の要素をフィルタリングする基本的な方法から、NULLの要素を削除する方法、flagを指定する方法などについて解説しました。array_filter関数は、配列を指定した条件でフィルタリングしたいときに非常に便利です。array_filter関数の使用方法を忘れてしまったら、この記事を思い出してくださいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。無料体験レッスンを予約する書いた人ヤマシタシステムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。