查找数组中的值,几个常用函数比较

来源:互联网 发布:linux wine官网 编辑:程序博客网 时间:2024/06/06 00:32

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);//整体搜索,返回keyvar_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";}?>


0 0
原创粉丝点击