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+AJAX传送中文会导致乱码的问题的解决方法
Sep 08 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
php 判断数组是几维数组
Mar 20 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
typecho插件编写教程(一):Hello World
May 28 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 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
7个超级实用的PHP代码片段
2011/07/11 PHP
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
ext jquery 简单比较
2010/04/07 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
原生JS实现微信通讯录
2020/06/18 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python动态加载变量示例分享
2014/02/17 Python
python动态参数用法实例分析
2015/05/25 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
Python中单、双下划线的区别总结
2017/12/01 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
python 随机森林算法及其优化详解
2019/07/11 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
Python读写锁实现实现代码解析
2020/11/28 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
便利店促销方案
2014/02/20 职场文书
艺术教育实施方案
2014/05/03 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
致运动员的广播稿
2015/08/19 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python