PHPで配列を検索・フィルターする方法!初心者向けにin_array・array_filter・array_searchをやさしく解説
生徒
「PHPで配列の中から特定の値を探したり、条件に合うものだけを取り出す方法ってありますか?」
先生
「あるよ!PHPではin_array、array_search、array_filterという便利な関数を使って配列を検索・フィルターできるんだ。」
生徒
「なんだか難しそうですが、わかるようになりますか?」
先生
「もちろん!初心者でもイメージしやすいように、身近なたとえや図解的な説明で順番に説明していくね!」
1. 配列の中に値があるか確認するin_array関数
in_array(インアレイ)は、PHPで「配列の中に特定の値があるか?」を調べる関数です。
読み方は「イン・アレイ」。inは「中にある」、arrayは「配列」という意味です。
<?php
$colors = ["赤", "青", "緑"];
if (in_array("青", $colors)) {
echo "青は含まれています";
}
?>
この例では、配列$colorsの中に「青」があるので、「青は含まれています」と表示されます。
in_arrayは、データの存在チェックによく使われます。
2. in_arrayの実行結果を確認しよう
青は含まれています
このように、特定の値があるかどうかを簡単に調べられるのがin_arrayです。
3. in_arrayの使いどころと注意点
in_arrayは、ユーザーが入力した値がリストの中にあるかどうかを確認する場面でよく使われます。
たとえば、選択肢の中に入力された項目があるか調べるときなどです。
ただし、数値と文字列が混ざっているときは、===の比較にするために第3引数をtrueにしましょう。
<?php
$numbers = [1, 2, 3];
var_dump(in_array("2", $numbers)); // true(型を無視)
var_dump(in_array("2", $numbers, true)); // false(型を厳密に比較)
?>
4. array_searchで値の場所(キー)を探す
array_search(アレイ・サーチ)は、PHPで配列の中から特定の値の「キー(位置)」を探す関数です。
見つかればそのキーを返し、見つからなければfalseが返ります。
<?php
$fruits = ["りんご", "みかん", "バナナ"];
$key = array_search("みかん", $fruits);
if ($key !== false) {
echo "みかんは {$key} 番目にあります";
}
?>
このコードでは、「みかん」は配列の1番目(0から数える)にあるので「1」と表示されます。
5. array_searchの実行結果を確認
みかんは 1 番目にあります
array_searchは、値の「場所」を知りたいときに便利です。
6. array_filterで配列を条件でフィルター
array_filter(アレイ・フィルター)は、配列の中から「条件に合うものだけ」を残して、新しい配列を作る関数です。
読み方は「アレイ・フィルター」、つまり「配列をこし取る・選び出す」という意味です。
<?php
$numbers = [1, 2, 3, 4, 5];
$even = array_filter($numbers, function($n) {
return $n % 2 === 0;
});
print_r($even);
?>
この例では、偶数(2で割り切れる数字)だけを抽出しています。
7. array_filterの結果を確認しよう
Array
(
[1] => 2
[3] => 4
)
このように、array_filterを使えば、配列の中身を条件で絞り込めます。
「一定の基準に合うデータだけを使いたい」ときに便利な関数です。
8. 実務での使い分けと応用例
実際の開発では、たとえば次のように使い分けます:
in_array→ データが存在するかどうかの確認array_search→ データの場所(キー)を知りたいarray_filter→ 条件に合うデータだけ残したい
例えばアンケート結果で「回答済みのユーザーだけを取り出す」「好きな果物が選ばれているか確認する」など、実用的な場面で使える機能です。
まとめ
配列検索の基礎をしっかり理解しよう
PHPで配列を検索したり条件で絞り込んだりする作業は、実務でも学習でもとてもよく登場する大切な知識です。 配列という仕組みは、情報を順番に並べて管理するための基本的な入れ物であり、その中から特定の値を見つけ出したり、 条件に一致するデータを選び出すことは、データ処理のあらゆる場面で欠かせない操作になります。 たとえばアンケート結果の整理、ユーザー一覧の確認、タグ情報からの検索、選択肢項目のチェックなど、 どんなジャンルのプログラムでも配列の検索やフィルターは自然と必要になるものです。 今回学んだin_array、array_search、array_filterはPHPの中でも特に使用頻度が高い関数であり、 これらを丁寧に使い分けられるようになることで、配列操作の幅が大きく広がり、 初心者でもわかりやすいロジックを書けるようになります。
in_arrayは「値が存在するか」を調べるための関数であり、配列の中に特定の値が含まれているかどうかを簡単に確認できます。 array_searchは「どこにあるか」を調べる関数であり、 実務ではキーを取得して次の処理につなげるための重要な役割を持っています。 そしてarray_filterは配列を条件で絞り込むための強力な関数であり、 大量のデータから必要な項目だけを取り出したいときにとても役立ちます。 それぞれの関数は用途が違い、特徴も異なるため、今回の学習で学んだように 「使う目的」から逆算して選ぶ習慣を身につけておくと良いでしょう。
実践で役立つサンプルコード
実際の開発現場では、ただ関数を知っているだけでなく、 実用的な組み合わせで使いこなせることがとても大切です。 以下に、今回学んだ要素を組み合わせたサンプルコードを示します。 配列の中に存在するかどうかの確認、条件に合うデータの抽出、 キーの取得まで一連の流れが自然につながるように整理しています。
<?php
$items = [
["name" => "りんご", "type" => "果物"],
["name" => "にんじん", "type" => "野菜"],
["name" => "バナナ", "type" => "果物"],
["name" => "たまねぎ", "type" => "野菜"],
];
$fruits = array_filter($items, function($item) {
return $item["type"] === "果物";
});
$names = array_column($items, "name");
if (in_array("バナナ", $names)) {
$key = array_search("バナナ", $names);
echo "バナナは {$key} 番目の要素として登録されています";
}
?>
このように、配列の中にあるデータを条件で選び出しながら、 必要に応じて値が存在するかどうかをチェックしたり、 特定のデータがどの位置にあるのかを調べるという処理が自然に行えるようになります。 実際の業務でもこのような書き方は頻繁に登場するため、 ぜひ今回のサンプルを参考にしながら、 自分のコードに合わせて応用してみてください。
使いどころを意識した配列処理の考え方
配列を扱うときの考え方として大切なのは、 「どんな情報を取り出したいのか」を明確にすることです。 配列操作は見た目のコードが短くても、その裏側では意外と複雑な処理が行われていることがあります。 しかし今回のin_arrayやarray_filterのような関数を理解しておけば、 配列の中身を確認したり、条件に合う項目だけを抽出したりする処理を自然に書けるようになります。 またarray_searchのようにキーを取得できる関数を使うと、 配列を編集したい場面や該当データを別の処理で再利用したい場面でもとても便利です。
特にPHPの開発では、配列をそのままデータベースの代わりに使って処理を進めるケースも多く、 一時的な入力データの管理や、フォームの選択肢管理、APIレスポンスの整形など、 配列を加工しながら処理する場面は後を絶ちません。 だからこそ、今回の関数をしっかり理解することが、 後のステップで役立つ基礎力となります。
学習理解を深める先生と生徒の振り返り会話
生徒「今回の配列検索の勉強で、どの関数がどんな場面で使えるかイメージしやすくなりました!」
先生「うん、それはとても良いことだよ。特にin_arrayとarray_searchはよく使うから自然に書けるようにしておこうね。」
生徒「array_filterの使い方も面白かったです。条件を関数で書けるところが便利ですね!」
先生「そうだね。配列を選び取る考え方が身につくと、もっと複雑な処理も簡単に書けるようになるよ。」
生徒「今日の内容は実務でも使えそうなので、もっと練習して身につけたいです!」
先生「その意欲があれば大丈夫。次は配列の並び替えや結合なども学んでいくと、さらに理解が深まるよ。」