PHP開発では、アレイは非常に頻繁に使用されるデータ構造です。 Arrayの値に対応するキー名を見つけるには、組み込みで効率的なツール関数であるarray_search()関数を使用できます。
mixed array_search( mixed $needle , array $haystack [, bool $strict = false ] )
この関数は、3つのパラメーターを受け取ります。
array_search()を使用して文字列値を見つける例を次に示します。
$fruits = array("banana", "apple", "orange", "grape");
<p>$key = array_search("apple", $fruits);</p>
<p>echo "The key for 'apple' is: " . $key;
出力の結果は次のとおりです。
The key for 'apple' is: 1
この例では、フルーツアレイを作成し、 array_search()を使用して「Apple」が配置されているキー名を見つけ、結果はインデックス値1を返します。
値だけでなくタイプも比較したい場合は、3番目のパラメーター$ strictをtrueに設定できます。次の例を見てみましょう。
$fruits = array("banana", 1, "2", true);
<p>$key = array_search(1, $fruits, true);<br>
echo "The key for 1 is: " . $key . "\n";</p>
<p>$key = array_search("1", $fruits, true);<br>
echo "The key for '1' is: " . $key;
出力の結果は次のとおりです。
The key for 1 is: 1
The key for '1' is:
使用されている厳格なパターンにより、 1 (整数)と「1」 (文字列)は不均等と見なされるため、2番目のルックアップはfalseを返します(キー名は一致していません)。
一般に、 array_search()は、PHPの非常に実用的な配列処理機能です。アレイ内の値の位置を見つけてキー名を取得する必要があるシナリオに適しています。シーケンシャル配列であろうと連想配列であろうと、ターゲット要素をすばやく見つけてコード効率を向上させることができます。