php 删除一维数组中某一个值元素的操作方法


Posted in PHP onFebruary 01, 2018

1. 自己写for循环

从array里去掉$tmp这个元素的值

<?php
$tmp = '324';
$arr = array(
'0' => '321',
'1' => '322',
'2' => '323',
'3' => '324',
'4' => '325',
'5' => '326',
);

代码

foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
print_r($arr);
?>

此时

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [4] => 325
 [5] => 326
)

要重置索引,加上一句

foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
$arr = array_values($arr);
print_r($arr);
?>

此时结果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)

array_merge()也可以实现同样的效果

foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
$arr = array_merge($arr);
print_r($arr);
?>

此时结果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)

2.优先使用php自带函数,因为那是用C实现的,比自己写效率高。

使用array_search和array_splice,这里array_splice自动实现重置序列值。

$key=array_search($tmp ,$arr);
array_splice($arr,$key,1);
var_dump($arr);

此时结果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)

最佳实践

$arr = array_merge(array_diff($arr, array($tmp)));
var_dump($arr);

结果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)

这里,如果数组元素是复杂数据结构,同样能够实现比较。当然数据本身仍然是一维的。

上面的例子中$tmp是一个值,如果$tmp是一个数组或者其他复杂数据结构,从$array中删除所有$tmp包含的元素,上面的方法同样有效

$arr = array_merge(array_diff($arr, $tmp));
var_dump($arr);

以上这篇php 删除一维数组中某一个值元素的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP一些有意思的小区别
Dec 06 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
PHP中静态变量的使用方法实例分析
Dec 01 PHP
php的4种常用运行方式详解
Dec 22 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
php学习笔记之字符串常见操作总结
Jul 16 PHP
基于php双引号中访问数组元素报错的解决方法
Feb 01 #PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 #PHP
PHP双向链表定义与用法示例
Jan 31 #PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 #PHP
PHP 记录访客的浏览信息方法
Jan 29 #PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 #PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 #PHP
You might like
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
python控制台英汉汉英电子词典
2020/04/23 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
python 获取图片分辨率的方法
2019/01/08 Python
Python单元和文档测试实例详解
2019/04/11 Python
恐龙的灭绝教学反思
2014/02/12 职场文书
白酒市场营销方案
2014/02/25 职场文书
诚信承诺书模板
2014/05/26 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
三严三实学习心得体会
2014/10/13 职场文书
工商行政处罚决定书
2015/06/24 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL