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 相关文章推荐
多文件上载系统完整版
Oct 09 PHP
在WIN98下以apache模块方式安装php
Oct 09 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
Destoon模板制作简明教程
Jun 20 PHP
php中json_encode UTF-8中文乱码的更好解决方法
Sep 28 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
PHP+MySQL存储数据常见中文乱码问题小结
Jun 13 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
PHP线程的内存回收问题
2016/07/08 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
python sorted函数原理解析及练习
2020/02/10 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
青年教师典范事迹材料
2014/01/31 职场文书
淘宝活动总结范文
2014/06/26 职场文书
学习十八大标语
2014/10/09 职场文书
2015毕业寄语大全
2015/02/26 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
朋友离别感言
2015/08/04 职场文书