加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP删除数组中指定值的元素常用技巧实例分析

发布时间:2022-07-24 12:07:38 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了PHP删除数组中指定值的元素。分享给大家供大家参考,具体如下: 测试数组如下: //这是一个测试数组 $testArr = array( t = qq, q = qq, b = baidu, a = ali, m = xiaomi ); 方法一: foreach遍历后unset删除,这种方法也是最容易想到的方法. f
  本文实例讲述了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(!emptyempty($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了,至于这两种方法哪个更好,那就应该是具体情况具体分析了。

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读