• 技术文章 >后端开发 >php教程

    php在数组中搜索某个键值并返回对应的键名的函数array_search()

    黄舟黄舟2017-11-08 13:51:40原创6765

    实例

    在数组中搜索键值 "red",并返回它的键名:

    <?php
    $a=array("a"=>"red","b"=>"green","c"=>"blue");
    echo array_search("red",$a);
    ?>

    定义和用法

    array_search() 函数在数组中搜索某个键值,并返回对应的键名。

    语法

    array_search(value,array,strict)
    参数描述
    value必需。规定在数组中搜索的键值。
    array必需。规定被搜索的数组。
    strict可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素。可能的值:
    • true

    • false - 默认

    如果设置为 true,则在数组中检查给定值的类型,数字 5 和字符串 5 是不同的(参见实例 2)。

    技术细节

    返回值:如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。
    PHP 版本:4.0.5+
    更新日志如果向函数传递无效的参数,函数返回 NULL(这个适用于自 PHP 5.3.0 起的所有的 PHP 函数)。

    自 PHP 4.2.0 起,如果搜索失败,该函数返回 FALSE,而不是 NULL。

    更多实例

    实例 1

    在数组中搜索键值 5,并返回它的键名(注意 ""):

    <?php
    $a=array("a"=>"5","b"=>5,"c"=>"5");
    echo array_search(5,$a,true);
    ?>

    但是array_search一般用到搜索一个数组中符合要求的第一个字符串。如果搜索的字符串在数组中含有多个,使用array_search的话,是 不行的。这时,我们使用array_keys()函数,实现搜索的字符串在数组中含有多个,

    看一下如下例子:

    $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); 
    $a=array_search( "blue",$array); //将输出$a=0; 
    $b=array_search( 'red',$array); //将只会输出$b=1; 
    $p = array_keys($array, 'red');//搜索的字符串在数组中含有多个 
    if(is_array($p)) {
      foreach($p as $v) { 
        echo $val."出现在".$v . " ";
       }
    }else { 
      echo $val."出现在".array_search($val, $array)." ";
    }

    例二:

    $array = array(4,5,7,8,9,10); 
    $found = array_search(8, $array); //调用array_search函数并输出查找结果 
    if($found){ //如果找到输出键 
    echo "已找到,键为".$found; 
    }else{ //如果没有找到输出错误信息 
    echo "没有找到"; 
    }

    下面我们来看看in_array函数

    采用in_array(value,array,type)

    type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

    $arr = array('可以','如何','方法','知道','沒有','不要');
    //in_array(value,array,type)
    $isin = in_array("如何2",$arr);
    if($isin){
      echo "in====".$isin;
    }else{
      echo "out====".$isin;
    }

    以上就是php在数组中搜索某个键值并返回对应的键名的函数array_search()的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php返回翻转顺序的数组的函数array_reverse() 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP Hyperf 3.0 发布!新功能速览• 详解PHP怎么实现旋转图片验证• 简单理解PHP超级全局变量• 一起聊聊PHP的路由与伪静态应用• PHP中几种常见的开发模式
    1/1

    PHP中文网