1.常用的in_array()
这个函数返回的boolen
2.array_search()
在数组中搜索给定的值,如果成功则返回相应的键名,只返回第一个匹配的key,要返回多个使用array_keys()
如果是二维数组,不能用于查询二维数组中的某个值,只能是将一维数组整体搜索,返回key
3.array_keys()
这个函数在不指定第二个参数的情况下,返回所有的key;在指定搜索值的情况下,返回所有匹配的key
<?php
/*
递归的搜索数组中值,并且返回key,可以是多维数组
*/
function recursive_array_search($needle,$haystack) {
foreach($haystack as $key=>$value) {
$current_key=$key;
if($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false)) {
return $current_key;
}
}
return false;
}
$arr = array(array('1',2,3),array(3,4,5));
$arr2= array(1,2,3);
//整体搜索,返回key
var_dump(array_search(array(3,4,5),$arr));//int(1)
//单个搜索,是不可以的
var_dump(array_search(5,$arr));//bool(false)
//递归的搜索,可以是多维数组
var_dump(recursive_array_search(5,$arr));//int(1)
?>
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array('p', $a)) {
echo "'ph' was found\n";
}
if (in_array(array('f', 'i'), $a)) {
echo "'fi' was found\n";
}
if (in_array('o', $a)) {
echo "'o' was found\n";
}
?>