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之第一天
Oct 09 PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
Apr 09 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
php笔记之:有规律大文件的读取与写入的分析
Apr 26 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 PHP
Yii2如何批量添加数据
May 17 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
Nov 15 PHP
PHP的PDO错误与错误处理
Jan 27 PHP
PHP中类与对象功能、用法实例解读
Mar 27 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多用户计数器代码
2007/03/11 PHP
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
php实现求相对时间函数
2015/06/15 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
12步教你理解Python装饰器
2016/02/25 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python实现图片插入文字
2019/11/26 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
学生自我鉴定范文
2013/10/04 职场文书
简历中自我评价范文3则
2013/12/14 职场文书
网上书店创业计划书
2014/01/12 职场文书
作文批改评语大全
2014/04/23 职场文书
课外小组活动总结
2014/08/27 职场文书
荆州古城导游词
2015/02/06 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android