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数据库连接类~~做成一个分页类!
Nov 25 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
无需数据库在线投票调查php代码
Jul 20 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
一个非常实用的php文件上传类
Jul 04 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 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
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
js数组的操作指南
2014/12/28 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
tween.js缓动补间动画算法示例
2018/02/13 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
jQuery实现本地存储
2020/12/22 jQuery
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
如何获取某个日期是当月的最后一天
2013/12/05 面试题
机械设计专业应届生求职信
2013/11/21 职场文书
公司企业表扬信
2014/01/11 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
2015年三万活动总结
2015/03/25 职场文书
2015年营业员工作总结
2015/04/23 职场文书