当前位置:首页 > PHP教程 > php数组 > 列表

PHP删除数组中指定值的元素常用方法实例分析【4种方法】

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-25 21:20:07 浏览: 评论:0 

这篇文章主要介绍了PHP删除数组中指定值的元素常用方法,结合实例形式对比分析了4种常用的数组遍历与元素删除方法,并总结分析了相关算法优缺点,需要的朋友可以参考下。

本文实例讲述了PHP删除数组中指定值的元素,分享给大家供大家参考,具体如下:

测试数组如下:

  1. //这是一个测试数组 
  2. $testArr = array
  3.   't' => 'qq'
  4.   'q' => 'qq'
  5.   'b' => 'baidu'
  6.   'a' => 'ali'
  7.   'm' => 'xiaomi' 
  8. ); 

方法一:

  1. //foreach遍历后unset删除,这种方法也是最容易想到的方法 
  2. function delByValue($arr$value){ 
  3.   if(!is_array($arr)){ 
  4.     return $arr
  5.   } 
  6.   foreach($arr as $k=>$v){ 
  7.     if($v == $value){ 
  8.       unset($arr[$k]); 
  9.     } 
  10.   } 
  11.   return $arr

测试:

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

print_r($testArr)

运行结果:

  1. Array 
  2.     [t] => qq 
  3.     [q] => qq 
  4.     [a] => ali 
  5.     [m] => xiaomi 

方法二:

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

测试:

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

print_r($testArr)

运行结果:

  1. Array 
  2.     [q] => qq 
  3.     [a] => ali 
  4.     [m] => xiaomi 

方法三:

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

测试:

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

print_r($testArr)

运行结果:

  1. Array 
  2.     [t] => qq 
  3.     [q] => qq 
  4.     [a] => ali 
  5.     [m] => xiaomi 

方法四:

  1. //使用array_keys搜索指定的值再循环unset) 
  2. function delByValue($arr$value){ 
  3.   $keys = array_keys($arr$value); 
  4.   var_dump($keys); 
  5.   if(!emptyempty($keys)){ 
  6.     foreach ($keys as $key) { 
  7.       unset($arr[$key]); 
  8.     } 
  9.   } 
  10.   return $arr

测试:

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

print_r($testArr)

运行结果:

  1. array(1) { 
  2.   [0]=> 
  3.   string(1) "b" 
  4. Array 
  5.     [t] => qq 
  6.     [q] => qq 
  7.     [a] => ali 
  8.     [m] => xiaomi 

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

Tags: PHP删除数组 PHP删除元素

分享到: