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脚本不报错的原因
Jun 12 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 PHP
ThinkPHP关于session的操作方法汇总
Jul 18 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
Sep 09 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
php中curl使用指南
Feb 05 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 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屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
php自动加载代码实例详解
2021/02/26 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
jquery tools之tooltip
2009/07/25 Javascript
javascript中的new使用
2010/03/20 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
vuejs指令详解
2017/02/07 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
python 定义给定初值或长度的list方法
2018/06/23 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
社区母亲节活动方案
2014/03/05 职场文书
会计核算科岗位职责
2014/03/19 职场文书
三八妇女节活动总结
2014/05/04 职场文书
如何用python清洗文件中的数据
2021/06/18 Python
React实现动效弹窗组件
2021/06/21 Javascript
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python