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代码
Mar 03 PHP
关于Intype一些小问题的解决办法
Mar 28 PHP
Windows下安装Memcached的步骤说明
Apr 25 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
Symfony模板的快捷变量用法实例
Mar 17 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
PL-880隐藏功能
2021/03/01 无线电
web方式ftp
2006/10/09 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
给Function做的OOP扩展
2009/05/07 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
node错误处理与日志记录的实现
2018/12/24 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
Python 实现链表实例代码
2017/04/07 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
python cookie反爬处理的实现
2020/11/01 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
现货白银电话营销话术
2015/05/29 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
Java Spring读取和存储详细操作
2022/08/05 Java/Android