array_search関数とは?
array_search関数は、PHPで指定した値が配列に含まれている場合、その値のインデックスを返す関数です。
array_search関数の概要
array_search関数の基本的な書式は、次のとおりです。
PHP
int array_search(mixed $needle, array $haystack);
mixed $needle
:検索する値array $haystack
:検索対象の配列
needle
が haystack
に含まれている場合は、その値のインデックスを返します。含まれていない場合は、FALSE
を返します。
array_search関数の書き方
array_search関数の書き方は、次のとおりです。
- 検索する値を用意します。
- 検索対象の配列を用意します。
- array_search関数を呼び出して、結果を取得します。
PHP
// 検索する値の用意
$needle = "山田 太郎";
// 検索対象の配列の用意
$haystack = array("山田 太郎", "佐藤 花子", "鈴木 一郎");
// array_search関数の呼び出し
$result = array_search($needle, $haystack);
// 結果の確認
if ($result !== FALSE) {
echo "見つかりました。インデックスは {$result} です。";
} else {
echo "見つかりませんでした。";
}
このコードを実行すると、次の出力になります。
見つかりました。インデックスは 0 です。
array_search関数の作成・使用方法
array_search関数は、次の2つの方法で使用できます。
if
文やswitch
文などの条件分岐で使用するforeach
文で使用する
PHP
// if 文での使用
$needle = "山田 太郎";
$haystack = array("山田 太郎", "佐藤 花子", "鈴木 一郎");
$result = array_search($needle, $haystack);
if ($result !== FALSE) {
echo "見つかりました。インデックスは {$result} です。";
} else {
echo "見つかりませんでした。";
}
PHP
// foreach 文での使用
$haystack = array("山田 太郎", "佐藤 花子", "鈴木 一郎");
foreach ($haystack as $key => $value) {
if ($key === array_search($value, $haystack)) {
echo $value . " は見つかりました。インデックスは {$key} です。";
}
}
array_search関数のスクリプトサンプル
次のスクリプトは、array_search関数を使用して、さまざまなデータの検索を行っています。
PHP
// 文字列の検索
$needle = "山田 太郎";
$haystack = array("山田 太郎", "佐藤 花子", "鈴木 一郎");
$result = array_search($needle, $haystack);
if ($result !== FALSE) {
echo "見つかりました。インデックスは {$result} です。";
} else {
echo "見つかりませんでした。";
}
// 数値の検索
$needle = 20;
$haystack = array(10, 20, 30);
$result = array_search($needle, $haystack);
if ($result !== FALSE) {
echo "見つかりました。インデックスは {$result} です。";
} else {
echo "見つかりませんでした。";
}
// 配列の検索
$needle = array("山田 太郎", "佐藤 花子");
$haystack = array(array("山田 太郎", "佐藤 花子"), array("鈴木 一郎", "田中 花子"));
$result = array_search($needle, $haystack);
if ($result !== FALSE) {
echo "見つかりました。インデックスは {$result} です。";
} else {
echo "見
array_search関数特有の事柄・注意点
- array_search関数は、配列のキーと値の順序に関係なく、値を検索します。
- 検索する値が配列の複数の要素に含まれている場合、最初に見つかった要素のインデックスを返します。
array_search関数のまとめ
array_search関数は、PHPで指定した値が配列に含まれている場合、その値のインデックスを返す便利な関数です。PHPの初心者でも使いやすいので、ぜひ覚えておきましょう。
array_search関数を使用する際の注意点は、次のとおりです。
- array_search関数は、配列のキーと値の順序に関係なく、値を検索します。
- 検索する値が配列の複数の要素に含まれている場合、最初に見つかった要素のインデックスを返します。
これらの注意点を踏まえて、array_search関数を活用してください。