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 相关文章推荐
Oracle Faq(Oracle的版本)
Oct 09 PHP
在线竞拍系统的PHP实现框架(二)
Oct 09 PHP
无数据库的详细域名查询程序PHP版(1)
Oct 09 PHP
php截取utf-8中文字符串乱码的解决方法
Mar 29 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
分享一则PHP定义函数代码
Feb 26 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
PHP实现在线阅读PDF文件的方法
Jun 23 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
php项目中类的自动加载实例讲解
Sep 12 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 DOS攻击实现代码(附如何防范)
2012/05/29 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
常用js脚本
2006/12/03 Javascript
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
wxPython多个窗口的基本结构
2019/11/19 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
python实现用户名密码校验
2020/03/18 Python
Python unittest框架操作实例解析
2020/04/13 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
Python tkinter实现日期选择器
2021/02/22 Python
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
经理职责范文
2013/11/08 职场文书
商务日语毕业生自荐信
2013/11/23 职场文书
行政助理岗位职责范文
2013/12/03 职场文书
ktv收银员岗位职责
2013/12/16 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
房屋租赁意向书
2014/04/01 职场文书
化工见习报告范文
2014/10/31 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
如何使JavaScript休眠或等待
2021/04/27 Javascript
Python实现视频中添加音频工具详解
2021/12/06 Python
MySQL派生表联表查询实战过程
2022/03/20 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL