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


Posted in PHP onAugust 21, 2018

本文实例讲述了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和ACCESS写聊天室(六)
Oct 09 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
php实现水仙花数示例分享
Apr 03 PHP
php准确计算复活节日期的方法
Apr 18 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
Yii 框架入口脚本示例分析
May 19 PHP
PHP rsa加密解密算法原理解析
Dec 09 PHP
php 将json格式数据转换成数组的方法
Aug 21 #PHP
php正确输出json数据的实例讲解
Aug 21 #PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 #PHP
php实现将数据做成json的格式给前端使用
Aug 21 #PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 #PHP
php ajax数据传输和响应方法
Aug 21 #PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 #PHP
You might like
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
JS 仿腾讯发表微博的效果代码
2013/12/25 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
实例Python处理XML文件的方法
2015/08/31 Python
Python脚本处理空格的方法
2016/08/08 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
python中的字典操作及字典函数
2018/01/03 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
Python如何急速下载第三方库详解
2020/11/02 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
广播节目策划方案
2014/05/23 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
农行心得体会
2014/09/02 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书
慰问信模板
2015/02/14 职场文书