配列の中に特定の値が含まれている場合にキーを返す方法です。
「array_search」を使用することで、配列の中に特定の値が含まれている場合にキーを返すことが出来ます。
array_search(探す値, 配列);
値が見つかった場合 値を返し、見つからなかった場合 false を返します。
「三項演算子」で例を作成しました。
<?php
$x = 1;
$array = array(0, 1, 2);
$key = (array_search($x, $array));
echo $key !== false ? "{$x} のキーは {$key} です。" : "{$x} は見つかりませんでした。";
?>
データ型まで比較する
「in_array」と同じく、第3引数をtrueにすることでデータ型まで比較する、=== と同じ比較を行います。
<?php
$x = "1"; // 文字列の "1" を代入します。
$array = array(0, 1, 2);
$key = (array_search($x, $array)); // 第3引数無しの場合、値が返されますが、
echo $key !== false ? "{$x} のキーは {$key} です。<br>\n" : "{$x} は見つかりませんでした。<br>\n";
$key = (array_search($x, $array, true)); // 第3引数をtrueにした場合、データ型まで比較されfalseが返されます
echo $key !== false ? "{$x} のキーは {$key} です。<br>\n" : "{$x} は見つかりませんでした。<br>\n";
?>
最後に…
頻繁に使う関数ではないと思いますが、覚えておいて損はないでしょう。
また、公式マニュアルでも、返ってきた値に対しては「===」等で厳密に比較することが推奨されていますのでそのようにしましょう。