php语言中,在一个数组中搜索一个指定的键值是否存在,大家都经常使用 in_array() 函数,那么今天飞鸟慕鱼博客就来介绍一个与 in_array() 函数功能相似但返回值有点不同的函数 array_search()。

php array_search() 函数介绍

array_search():函数在数组中搜索指定的键值,有则返回对应的键名,否则返回false.

语法:

array_search(value,array,strict)

参数:

value:必需,要搜索的值

array:必需,被搜索的数组

strict:可选,默认 false,如设置为 true,则搜索数据类型和值一致的元素

php array_search() 函数使用方法示例

1、在php数组中,搜索指定的元素

<?php
$arr = array('Name'=>'飞鸟慕鱼博客','Host'=>'http://feiniaomy.com');
//搜索一个存在的值
$key = array_search('飞鸟慕鱼博客',$arr);
var_dump($key);
//搜索一个不存在的值
$key2 = array_search('baidu.com',$arr);
var_dump($key2);
?>

运行结果:

string(4) "Name"
bool(false)

说明:

(1),如果php数组中存在被搜索的值,则返回对应的键名

(2)、如果搜索的元素不存在,array_search() 返回 false

2、array_search() 数据类型精确匹配查找

把 array_search() 函数的第三个参数,设置为 true,则在php数组中搜索指定的键值时,会配置值的数据类型,可以达到精确查找的目的

例:

php语言代码:

<?php
$arr = array('a'=>'1','b'=>'2','c'=>'3');
//搜索字符串类型的 2
$key1 = array_search('2',$arr,true);
var_dump($key1);
//搜索数组类型的 2
$key2 = array_search(2,$arr,true);
var_dump($key2);
?>

运行结果:

string(1) "b" 
bool(false)

补充说明:

array_search() 与 in_array() 两个函数,虽然在使用上与功能上有很大的相似之处,但它们之间还是有些区别的。

1、array_search()函数,在数组中搜索到指定的键值后,会返回相对应的键名

2、in_array()函数,在数组中搜索到指定的键值后,会返回 TRUE

3、array_search() 与 in_array() ,在搜索不到指定键值时,都会返回 FALSE

4、in_array() 使用参考:https://www.feiniaomy.com/post/353.html