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自动跳转中英文页面
Jul 29 PHP
php中几种常见安全设置详解
Apr 06 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
php下将多个数组合并成一个数组的方法与实例代码
Feb 03 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
PHP图像处理类库及演示分享
May 17 PHP
Symfony2之session与cookie用法小结
Mar 18 PHP
PHP7.3.10编译安装教程
Oct 08 PHP
PHP数组实际占用内存大小原理解析
Dec 11 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实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
Python File readlines() 使用方法
2018/03/19 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
"引用"与指针的区别是什么
2016/09/07 面试题
新郎父亲婚宴答谢词
2014/01/11 职场文书
公司庆典邀请函范文
2014/01/13 职场文书
护理中职生求职信范文
2014/02/24 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
股份合作协议书
2014/04/12 职场文书
体育教师求职信
2014/05/24 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
企业委托书范本
2014/09/13 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
公司员工奖惩制度
2015/08/04 职场文书
60句有关成长的名言
2019/09/04 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android
Golang解析JSON对象
2022/04/30 Golang