array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false
$haystack 中搜索 $needle,找到返回對應的鍵名(整數或字符串)。false(PHP 4.2.0 前返回 null)。$strict=true 時使用 === 比較(類型+值),默認 ==(類型轉換)。$a = ["a"=>"Dog", "b"=>"Cat", "c"=>"Horse"];
echo array_search("Dog", $a); // a
$b = [10, 20, 30, "10"];
var_dump(array_search("10", $b)); // int(0) 非嚴格:字符串 "10" == 整數 10
var_dump(array_search("10", $b, true)); // int(3) 嚴格:類型必須一致
!== false 判斷$key = array_search($val, $arr);
if ($key !== false) { // 不能用 if ($key) ,因為鍵名可能是 0
// 找到
}
$keys = array_keys($arr, $val, $strict); // 返回所有匹配的鍵名數組
需自行遞歸或使用 array_column + array_search:
$users = [
['id'=>1, 'name'=>'Alice'],
['id'=>2, 'name'=>'Bob'],
];
$names = array_column($users, 'name');
$key = array_search('Bob', $names); // 1
$user = $users[$key] ?? null;