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→ 条件に合うデータだけ残したい
例えばアンケート結果で「回答済みのユーザーだけを取り出す」「好きな果物が選ばれているか確認する」など、実用的な場面で使える機能です。