カテゴリ: PHP 更新日: 2025/10/12

PHPで配列を検索・フィルターする方法!初心者向けにin_array・array_filter・array_searchをやさしく解説

PHP の配列の検索・フィルター(in_array, array_filter, array_search)
PHP の配列の検索・フィルター(in_array, array_filter, array_search)

先生と生徒の会話形式で理解しよう

生徒

「PHPで配列の中から特定の値を探したり、条件に合うものだけを取り出す方法ってありますか?」

先生

「あるよ!PHPではin_arrayarray_searcharray_filterという便利な関数を使って配列を検索・フィルターできるんだ。」

生徒

「なんだか難しそうですが、わかるようになりますか?」

先生

「もちろん!初心者でもイメージしやすいように、身近なたとえや図解的な説明で順番に説明していくね!」

-

1. 配列の中に値があるか確認するin_array関数

1. 配列の中に値があるか確認するin_array関数
1. 配列の中に値があるか確認するin_array関数

in_array(インアレイ)は、PHPで「配列の中に特定の値があるか?」を調べる関数です。

読み方は「イン・アレイ」。inは「中にある」、arrayは「配列」という意味です。


<?php
$colors = ["赤", "青", "緑"];

if (in_array("青", $colors)) {
    echo "青は含まれています";
}
?>

この例では、配列$colorsの中に「青」があるので、「青は含まれています」と表示されます。

in_arrayは、データの存在チェックによく使われます。

2. in_arrayの実行結果を確認しよう

2. in_arrayの実行結果を確認しよう
2. in_arrayの実行結果を確認しよう

青は含まれています

このように、特定の値があるかどうかを簡単に調べられるのがin_arrayです。

3. in_arrayの使いどころと注意点

3. 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で値の場所(キー)を探す

4. array_searchで値の場所(キー)を探す
4. array_searchで値の場所(キー)を探す

array_search(アレイ・サーチ)は、PHPで配列の中から特定の値の「キー(位置)」を探す関数です。

見つかればそのキーを返し、見つからなければfalseが返ります。


<?php
$fruits = ["りんご", "みかん", "バナナ"];
$key = array_search("みかん", $fruits);

if ($key !== false) {
    echo "みかんは {$key} 番目にあります";
}
?>

このコードでは、「みかん」は配列の1番目(0から数える)にあるので「1」と表示されます。

-

5. array_searchの実行結果を確認

5. array_searchの実行結果を確認
5. array_searchの実行結果を確認

みかんは 1 番目にあります

array_searchは、値の「場所」を知りたいときに便利です。

6. array_filterで配列を条件でフィルター

6. array_filterで配列を条件でフィルター
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の結果を確認しよう

7. array_filterの結果を確認しよう
7. array_filterの結果を確認しよう

Array
(
    [1] => 2
    [3] => 4
)

このように、array_filterを使えば、配列の中身を条件で絞り込めます。

「一定の基準に合うデータだけを使いたい」ときに便利な関数です。

8. 実務での使い分けと応用例

8. 実務での使い分けと応用例
8. 実務での使い分けと応用例

実際の開発では、たとえば次のように使い分けます:

  • in_array → データが存在するかどうかの確認
  • array_search → データの場所(キー)を知りたい
  • array_filter → 条件に合うデータだけ残したい

例えばアンケート結果で「回答済みのユーザーだけを取り出す」「好きな果物が選ばれているか確認する」など、実用的な場面で使える機能です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-