函數原型
mixed array_search(mixed $needle, array $haystack [, bool $strict = false])
參數說明
| 參數 | 說明 |
| needle | 搜索的值,字符串區分大小寫 |
| haystack | 目標數組 |
| strict | true 時同時檢查類型 (===) |
返回值
- 找到 → 返回第一個匹配的鍵名
- 未找到 →
false
- 多次出現 → 僅返回首個,需所有鍵用
array_keys()
關鍵陷阱:索引 0 與 false 混淆
$arr = [0 => 'a', 1 => 'b'];
$key = array_search('a', $arr); // 返回 0
if ($key) { ... } // 錯誤!0 當作 false
if ($key !== false) { ... } // 正確:嚴格比較
示例
$arr_a = [0 => 'a', 1 => 'b', 2 => 'c'];
$key = array_search('a', $arr_a);
if ($key !== false) {
echo "鍵名為:$key"; // 輸出:鍵名為:0
} else {
echo '無匹配結果';
}
對比:array_search vs in_array vs array_keys
| 函數 | 返回 | 用途 |
| array_search | 鍵名 / false | 需要知道位置 |
| in_array | bool | 只需判斷存在性 |
| array_keys | 所有鍵名數組 | 獲取所有匹配位置 |
總結
array_search() 是查找值對應鍵名的標準函數,必須使用 !== false 嚴格判斷 避免索引 0 被誤判。需所有匹配鍵時改用 array_keys(),僅判斷存在用 in_array()。