`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` 的情况。