column

ITコラム

mv13279

プログラミングノウハウ

2019.02.19

PHP【 配列 】配列内のデータ検索

配列を使用するシステムでは、データがなければ追加する など 特定のデータの存否を確認する必要性が生じる場合があります。
今回は PHP の配列内データの検索方法を紹介します。

配列についてはこちらの記事もご参照下さい。

PHP【 配列 】複数の値を保持するデータ構造
PHP【 配列 】配列にデータを追加
PHP【 配列 】配列からデータを削除
PHP【 配列 】count で要素数を取得
PHP【 配列 】配列のソート
PHP【 連想配列 】キーでデータを特定
PHP【 多次元配列 】配列の中に配列
PHP【 配列 】配列内のデータ検索(本ページ)
PHP【 配列 】要素を比較
PHP【 配列 】配列の結合
PHP【 配列 】in_array で値の存在チェック
PHP【 配列 】array_map で一括処理
PHP【 配列 】キーを取得
PHP【 配列 】array_filter でフィルター
PHP【 配列 】array_column で同一キーの値を取得
PHP【 配列 】foreach でループ処理
PHP【 配列 】array_unique で重複した値を削除
PHP【 配列 】便利な関数

 
本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方

なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。

最終更新日:2019年2月19日

1. array_search で検索

 
array_search 関数を使用すると 配列内のデータを検索することができます。

array_search 関数は、検索対象となる配列に 検索したいデータが存在する場合に そのデータのインデックス番号( 連想配列の場合はキー )を返す関数です。

検索したいデータが配列に複数存在する場合は、最小のインデックス番号( 連想配列の場合は先頭に 1 番近いキー )のみが返ります。

array_search 関数は、次のように記述して使用します。

array_search(検索対象値, $array[, true / false]);

第 1 引数には検索したいデータを指定します。
文字列のデータを指定する場合は、大文字と小文字を区別して検索します。

第 2 引数には検索対象となる配列を指定します。

第 3 引数は省略可能ですが、ここに true を指定すると 検索したい値のデータ型やオブジェクトが同じインスタンスであるか 等まで比較対象となります。

▲目次へ戻る

 

2. in_array で検索

 
array_search 関数と同様に、in_array 関数を使用しても 配列内のデータを検索することができます。

in_array 関数は、検索対象となる配列に 検索したいデータが存在するか否かを true 又は false で返す関数です。

in_array 関数は、次のように記述して使用します。

in_array(検索対象値, $array[, true / false]);

第 1 引数には検索したいデータを指定します。
文字列のデータを指定する場合は、大文字と小文字を区別して検索します。

第 2 引数には検索対象となる配列を指定します。

第 3 引数は省略可能ですが、ここに true を指定すると 検索したい値のデータ型やオブジェクトが同じインスタンスであるか 等まで比較対象となります。

使用方法は array_search 関数と同じですが、array_search 関数の戻り値がインデックス番号( 連想配列の場合はキー )であるのに対して in_array 関数の戻り値は true 又は fale である点に違いがあります。

▲目次へ戻る

 

3. 配列のデータを検索するサンプル

 
array_search 関数と in_array 関数を使用して 配列内のデータを検索してみます。

下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)

<pre>
<?php

  $name = array("青山", "井川", "植木", "江口", "大竹");

  echo array_search("大竹", $name);

  echo "<br><br>";

  echo in_array("大竹", $name);

?>
</pre>

PHP 配列 検索 プログラマカレッジ

array_search 関数を実行すると、検索値「 大竹 」のインデックス番号 4 が返ります。

in_array 関数を実行すると、検索値「 大竹 」が存在しているので true が返りますが、PHP では bool 型( true / false )の true を出力すると 1 が表示されます( false を出力すると何も表示されません )。
 

3-1. 連想配列を検索

連想配列についても同様にデータ検索ができます。

<pre>
<?php

  $name = array("aoyama"=>"青山", "igawa"=>"井川", "ueki"=>"植木", "eguchi"=>"江口", "otake"=>"大竹");

  echo array_search("大竹", $name);

  echo "<br><br>";

  echo in_array("大竹", $name);

?>
</pre>

PHP 配列 検索 プログラマカレッジ

array_search 関数を実行すると、インデックス番号ではなく キー「 otake 」 が返ります。

in_array 関数を実行すると、通常の配列と同様に true 又は false が返ります( true は 1 が表示され、false は何も表示されません )。

▲目次へ戻る

無料説明会

SHARE

最新記事

無料説明会に参加してみる

INTERNOUS,inc. All rights reserved.

無料オンライン説明会へ