• 技术文章 >后端开发 >PHP问题

    php怎么去除数组中某个元素

    藏色散人藏色散人2021-06-02 14:28:55原创104

    php去除数组中某个元素的方法:1、通过foreach遍历后用unset删除;2、使用array_flip及unset进行删除;3、通过array_search进行搜索删除;4、通过使用array_keys搜索指定的值再循环unset即可。

    本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑

    php怎么去除数组中某个元素

    本文实例讲述了PHP删除数组中指定值的元素。

    测试数组如下:

    //这是一个测试数组
    $testArr = array(
      't' => 'qq',
      'q' => 'qq',
      'b' => 'baidu',
      'a' => 'ali',
      'm' => 'xiaomi'
    );

    方法一:

    //foreach遍历后unset删除,这种方法也是最容易想到的方法
    function delByValue($arr, $value){
      if(!is_array($arr)){
        return $arr;
      }
      foreach($arr as $k=>$v){
        if($v == $value){
          unset($arr[$k]);
        }
      }
      return $arr;
    }

    测试:

    $testArr = delByValue($testArr,'baidu');
    print_r($testArr)

    运行结果:

    Array
    (
        [t] => qq
        [q] => qq
        [a] => ali
        [m] => xiaomi
    )

    方法二:

    //array_flip之后unset,这种方法有一个弊端,就是反转后由于有两个键值都为qq,有一个数据将会丢失,所以在使用时请谨慎)
    function delByValue($arr, $value){
      $tempArr = array_flip($arr);
      unset($tempArr[$value]);
      return array_flip($tempArr);
    }

    测试:

    $testArr = delByValue($testArr,'baidu');
    print_r($testArr)

    运行结果:

    Array
    (
        [q] => qq
        [a] => ali
        [m] => xiaomi
    )

    方法三:

    //array_search,这种方法亦有弊端,array_search搜索到一个合适的值时便返回,所以在数组存在多个相关的值这种方法不适用)
    function delByValue($arr, $value){
      $key = array_search($value,$arr);
      if(isset($key)){
        unset($arr[$key]);
      }
      return $arr;
    }

    测试:

    $testArr = delByValue($testArr,'baidu');
    print_r($testArr)

    运行结果:

    Array
    (
        [t] => qq
        [q] => qq
        [a] => ali
        [m] => xiaomi
    )

    方法四:

    //使用array_keys搜索指定的值再循环unset)
    function delByValue($arr, $value){
      $keys = array_keys($arr, $value);
      var_dump($keys);
      if(!empty($keys)){
        foreach ($keys as $key) {
          unset($arr[$key]);
        }
      }
      return $arr;
    }

    测试:

    $testArr = delByValue($testArr,'baidu');
    print_r($testArr)

    运行结果:

    array(1) {
      [0]=>
      string(1) "b"
    }
    Array
    (
        [t] => qq
        [q] => qq
        [a] => ali
        [m] => xiaomi
    )

    四种方法总结下来,真正比较可行的还是方法1和方法4了,至于这两种方法哪个更好,那就应该是具体情况具体分析了。

    推荐学习:《PHP视频教程

    以上就是php怎么去除数组中某个元素的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:什么是do...while循环?和while循环有区别?(附代码) 下一篇:yum怎么安装php curl
    第16期线上培训班

    相关文章推荐

    • php5.6.15安装教程• php fopen 报错怎么办• php 删除空白的函数有哪些• php object怎么转成array• yum remove php 失败怎么办

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网