`array_search()` 函數在PHP中用于搜索給定數組中的值,并返回該值第一次出現的鍵。若找到值,則返回相應的鍵。如果沒有找到值,則返回 `false`。這個函數對于查找數組中是否存在某個值,以及該值對應的鍵是什么非常有用。
基本語法
```php
mixed array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
```
- **$needle** 是你想要在 `$haystack` 數組中搜索的值。
- **$haystack** 是目標數組,即你想要從中搜索指定值的數組。
- **$strict** (可選參數)如果設置為 `true`,則 `array_search()` 也會檢查 `$needle` 和找到的元素的數據類型是否相同。
返回值
- 如果找到了值,`array_search()` 返回它的鍵。請注意,可能的返回值包括像 0 或其他“假”的值,所以你應該使用恒等(`===`)操作符而不是等于(`==`)操作符來檢查函數的返回值。
- 如果沒找到值,返回 `false`。
示例
查找值并獲取其鍵
```php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2
echo $key;
$key = array_search('red', $array); // $key = 1
echo $key;
```
使用嚴格模式
```php
$array = array('apple', 'orange', 10, 'banana', '10');
// 非嚴格模式:找到字符串 '10' 的位置(自動類型轉換)
$key = array_search('10', $array); // $key = 2
echo $key;
// 嚴格模式:精確匹配字符串 '10'
$keyStrict = array_search('10', $array, true); // $keyStrict = 4
echo $keyStrict;
```
注意事項
- 在使用 `array_search()` 函數時,如果數組包含多個相同的值,則只返回第一個匹配值的鍵。
- 因為 `false` 可能是一個有效的鍵值,所以建議使用恒等比較(`===`)來判斷 `array_search()` 的返回結果是否確實是 `false`,從而區分查找失敗與查找的鍵值為 `false` 的情況。