カテゴリ: PHP 更新日: 2026/02/13

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関数

PHPプログラミングで「あるデータがリストの中に含まれているか?」を瞬時に判定したいときに欠かせないのが、このin_array(イン・アレイ)関数です。

「in(~の中に)」「array(配列)」という名前の通り、特定のキーワードが配列という箱の中に存在するかどうかをチェックする役割を持っています。初心者の方が最初につまずきやすい「データの存在確認」を、たった1行で解決できる非常に便利な機能です。

イメージ図: カゴ(配列)の中に「リンゴ」が入っているか手を突っ込んで探すようなイメージです。見つかれば「あった!(true)」、なければ「なかった(false)」という結果を教えてくれます。

<?php
// フルーツのリスト(配列)を用意します
$fruits = ["りんご", "バナナ", "オレンジ"];

// 「バナナ」が配列の中にあるか探します
if (in_array("バナナ", $fruits)) {
    echo "バナナは見つかりました!";
} else {
    echo "リストにはありませんでした。";
}
?>

このサンプルでは、$fruitsという変数の中に「バナナ」という文字列があるかを調べています。配列の中に一致する値があれば true(真)を返すため、if文と組み合わせて「値があったときだけ特定の処理をする」といった使い方が一般的です。

例えば、会員サイトのログインチェックや、おみくじの結果判定、選択したメニューが有効かどうかを調べる際など、実務のあらゆる場面で活用されています。

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で配列を検索したり条件で絞り込んだりする作業は、実務でも学習でもとてもよく登場する大切な知識です。 配列という仕組みは、情報を順番に並べて管理するための基本的な入れ物であり、その中から特定の値を見つけ出したり、 条件に一致するデータを選び出すことは、データ処理のあらゆる場面で欠かせない操作になります。 たとえばアンケート結果の整理、ユーザー一覧の確認、タグ情報からの検索、選択肢項目のチェックなど、 どんなジャンルのプログラムでも配列の検索やフィルターは自然と必要になるものです。 今回学んだ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の使い方も面白かったです。条件を関数で書けるところが便利ですね!」

先生「そうだね。配列を選び取る考え方が身につくと、もっと複雑な処理も簡単に書けるようになるよ。」

生徒「今日の内容は実務でも使えそうなので、もっと練習して身につけたいです!」

先生「その意欲があれば大丈夫。次は配列の並び替えや結合なども学んでいくと、さらに理解が深まるよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPのin_array関数とは何ですか?どんなときに使うべきですか?

PHPのin_array関数は、指定した値が配列の中に存在するかどうかを調べるための関数です。たとえばユーザーの入力が有効な選択肢に含まれているか確認したいときなどに使います。
コメント
コメント投稿は、ログインしてください

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

カテゴリの一覧へ
新着記事
New1
Python
Pythonのクラスとは?基本の定義とインスタンスの作成方法を初心者向けに解説
New2
Python
Pythonで月末・月初を取得する方法を解説!初心者でもわかるcalendarモジュールの使い方
New3
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
New4
Python
Pythonで空白を削除する方法!strip()・rstrip()・lstrip()の活用
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.3
Java&Spring記事人気No3
PHP
PHP の MySQL にデータを挿入する方法(INSERT 文の実行)を完全解説!初心者向けガイド
No.4
Java&Spring記事人気No4
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.5
Java&Spring記事人気No5
PHP
PHP の MySQL 接続の基本(mysqli, PDO)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
PHP
PHPの可変長引数(...$args)の使い方を完全ガイド!初心者でもわかる基本と活用方法
No.7
Java&Spring記事人気No7
PHP
PHPのswitch文を使った条件処理の書き方を完全ガイド!初心者でもわかる使い方
No.8
Java&Spring記事人気No8
PHP
初心者向けPHP の MySQL のデータを削除する方法(DELETE 文)完全ガイド