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
PHP 数组入门教程小结
May 20 PHP
PHP mcrypt可逆加密算法分析
Jul 19 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
php-msf源码详解
Dec 25 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 PHP
Smarty模板语法详解
Jul 20 PHP
PHP设计模式之组合模式定义与应用示例
Feb 01 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通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
简单实现python聊天程序
2018/04/01 Python
深入浅析python with语句简介
2018/04/11 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
给女儿的表扬信
2014/01/18 职场文书
设计专业自荐信
2014/06/19 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
三八节活动主持词
2015/07/04 职场文书
师德师风培训感言
2015/08/03 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis