PHPバージョン
4.0.5+
// 基本例1:通常の配列でのarray_search()
$arr = ['a', 'b', 'c'];

$key = array_search('c', $arr);
var_dump($key); // 出力:int(2)

$notFound = array_search('d', $arr);
var_dump($notFound); // 出力:bool(false)


// 基本例2:連想配列でのarray_search()
$fruits = [
    'apple' => 'red',
    'banana' => 'yellow',
    'cherry' => 'red'
];

$colorToFind = array_search('red', $fruits);
var_dump($colorToFind); // 出力:string(5) "apple"
array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false
$fruits = [
    'apple' => 'red',
    'banana' => 'yellow',
    'cherry' => 'red'
];

// $fruits配列から'red'の値を検索し、最初に一致したキー(インデックス)を返します。
$colorToFind = array_search('red', $fruits);

// $fruits配列には'red'の値を持つキー(インデックス)が2つあります。'apple'と'cherry'です。
// $colorToFindには'red'を持つ最初の項目のキー(インデックス)が代入されます。
// したがって$colorToFindは'apple'となります。
var_dump($colorToFind); // 出力:string(5) 'apple'
$numbers = [0, "0", false, null];
$searchValue = 0;

$result = array_search($searchValue, $numbers, true);

if ($result == false) {
    echo "検索する値 $searchValue は配列内で見つかりませんでした。";
} else {
    echo "検索する値 $searchValue の位置はインデックス $result です。";
}

// 誤った結果が発生!!!
// 出力:'検索する値 0 は配列内で見つかりませんでした。'

if ($result === false) {
    echo "検索する値 $searchValue は配列内で見つかりませんでした。";
} else {
    echo "検索する値 $searchValue の位置はインデックス $result です。";
}

// 出力:'検索する値 0 の位置はインデックス 0 です。'
$numbers = [1, 2, 3, 4, 2, 5, 6];
$searchValue = 2;

if (array_search($searchValue, $numbers) !== false) {
    echo '検索する値が存在します。';
} else {
    echo '検索する値は存在しません。';
}

// 出力:'検索する値が存在します。'
$products = [
    'apple' => 1.99,
    'banana' => 0.99,
    'cherry' => 2.49
];

$targetPrice = 1.00; // 検索する価格

$key = array_search($targetPrice, $products);

if ($key !== false) {
    unset($products[$key]); // 見つかった値を削除
    // または値を変更:$products[$key] = 新しい価格;
} else {
    echo '見つからない製品または価格です。';
}

// 出力:'見つからない製品または価格です。'
$students = [
    ['name' => 'Alice', 'age' => 20],
    ['name' => 'Bob', 'age' => 22],
    ['name' => 'Charlie', 'age' => 21]
];

$searchName = 'Bob';

foreach ($students as $key => $student) {
    if (array_search($searchName, $student) !== false) {
        echo "名前が $searchName の学生を見つけました。学生番号:$key";
        break;
    }
}

// 出力:'名前が Bob の学生を見つけました。学生番号:1'
$numbers = [3, 5, 2, 8, 10, 6];
$searchValue = 8;

$key = array_search($searchValue, $numbers);

if ($key !== false) {
    echo "検索する値 $searchValue の位置はインデックス $key です。";
} else {
    echo "検索する値 $searchValue は配列内に存在しません。";
}

// 出力:'検索する値 8 の位置はインデックス 3 です。'