PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのarray_search()関数とは?使い方と具体例をわかりやすく解説

PHPのarray_search()関数は、配列の中から指定した値を検索し、見つかった場合にそのキーを返す関数です。値が配列内に存在しない場合はFALSEを返します。また、同じ値が配列内に複数存在する場合は、最初に一致したキーが返されるという特徴があります。

基本構文

array_search(val, arr, strict)

パラメータ

  • val − 配列内で検索したい値

  • arr − 検索対象となる配列

  • strict − TRUE または FALSE を指定できます。TRUE を設定すると、値だけでなくデータ型まで含めた厳密な比較(===)を行って同一要素を検索します。

戻り値

指定した値が配列内に見つかった場合はそのキーを返し、見つからなかった場合は FALSE を返します。値が複数回出現する場合は、最初にマッチしたキーのみが返されます。

ポイント: 戻り値が FALSE になる可能性があるため、判定には必ず ===!== のような厳密な比較演算子を使うことが推奨されます。緩い比較(==)では、キー「0」が返された場合に FALSE と誤判定される恐れがあります。

使用例1:連想配列での検索

<?php
$arr = array("p"=>20,"q"=>20,"r"=>30,"s"=>40);
echo array_search(20,$arr,true);
?>

出力結果

p

この例では、値「20」を持つ最初のキーである「p」が返されています。キー「q」も同じ値を持ちますが、先に一致した方だけが出力されます。

使用例2:数値配列での検索

<?php
$arr = array(30, 2, 5, 7, 90, 35, 78);
echo array_search(35,$arr,true);
?>

出力結果

5

通常のインデックス配列の場合は、検索した値に対応する数値インデックスが返ります。

使用例3:文字列を含む配列での検索

<?php
$arr = array("MAC", "WINDOWS","LINUX", "SOLARIS");
$search = "WINDOWS";
echo array_search($search,$arr,true);
?>

出力結果

1

文字列の検索でも同様に機能し、「WINDOWS」はインデックス「1」の位置にあるため「1」が出力されます。

まとめ

array_search()関数は、配列から特定の値を探してそのキーを取得したいときに便利な関数です。特に strict パラメータを TRUE にすることで型の違いによる予期しないマッチを防げるため、実務では厳密な比較を活用することをおすすめします。

  1. PHPのarray_search()関数とは?使い方と具体例をわかりやすく解説

    PHPのarray_search()関数は、配列の中から指定した値を検索し、見つかった場合にそのキーを返す関数です。値が配列内に存在しない場合はFALSEを返します。また、同じ値が配列内に複数存在する場合は、最初に一致したキーが返されるという特徴があります。基本構文array_search(val, arr, strict)パラメータval − 配列内で検索したい値arr − 検索対象となる配列strict − TRUE または FALSE を指定できます。TRUE を設定すると、値だけでなくデータ型まで含めた厳密な比較(===)を行って同一要素を検索します。戻り値指定した値が配列内に見つかっ

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に