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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
php创建多级目录代码
Jun 05 PHP
PHP 危险函数解释 分析
Apr 22 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
php实现求相对时间函数
Jun 15 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
PHP实现的抓取小说网站内容功能示例
Jun 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
推荐25款php中非常有用的类库
2014/09/29 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
php json转换相关知识(小结)
2018/12/21 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
基于jquery的表格排序
2010/09/11 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
详解vue axios中文文档
2017/09/12 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
Django ModelForm操作及验证方式
2020/03/30 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
暑期教师培训方案
2014/06/07 职场文书
大专毕业生求职信
2014/07/05 职场文书
人大代表选举标语
2014/10/07 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
通讯稿范文
2015/07/22 职场文书
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
centos7安装mysql5.7经验记录
2022/05/02 Servers