php 删除一维数组中某一个值元素的操作方法
1. 自己写for循环
从array里去掉$tmp这个元素的值
|
1
2
3
4
5
6
7
8
9
10
|
<?php$tmp = '324';$arr = array('0' => '321','1' => '322','2' => '323','3' => '324','4' => '325','5' => '326',); |
代码
|
1
2
3
4
5
|
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]);}print_r($arr);?> |
此时
|
1
2
3
4
5
6
7
8
|
Array( [0] => 321 [1] => 322 [2] => 323 [4] => 325 [5] => 326) |
要重置索引,加上一句
|
1
2
3
4
5
6
|
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]);}$arr = array_values($arr);print_r($arr);?> |
此时结果
|
1
2
3
4
5
6
7
8
|
Array( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326) |
array_merge()也可以实现同样的效果
|
1
2
3
4
5
6
|
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]);}$arr = array_merge($arr);print_r($arr);?> |
此时结果
|
1
2
3
4
5
6
7
8
|
Array( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326) |
2.优先使用php自带函数,因为那是用C实现的,比自己写效率高。
使用array_search和array_splice,这里array_splice自动实现重置序列值。
|
1
2
3
|
$key=array_search($tmp ,$arr);array_splice($arr,$key,1);var_dump($arr); |
此时结果
|
1
2
3
4
5
6
7
8
|
Array( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326) |
最佳实践
|
1
2
|
$arr = array_merge(array_diff($arr, array($tmp)));var_dump($arr); |
结果
|
1
2
3
4
5
6
7
8
|
Array( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326) |
这里,如果数组元素是复杂数据结构,同样能够实现比较。当然数据本身仍然是一维的。
上面的例子中$tmp是一个值,如果$tmp是一个数组或者其他复杂数据结构,从$array中删除所有$tmp包含的元素,上面的方法同样有效
|
1
2
|
$arr = array_merge(array_diff($arr, $tmp));var_dump($arr); |
转载:https://www.jb51.net/article/134176.htm
php 删除一维数组中某一个值元素的操作方法的更多相关文章
- leetcode 刷题(数组篇)26题 删除有序数组中的重复值 (双指针)
题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额 ...
- JS 判断某变量是否为某数组中的一个值 的几种方法
1.正则表达式 js 中判断某个元素是否存在于某个 js 数组中,相当于 PHP 语言中的 in_array 函数. }; 用法如下: var arr=new Array([‘b’,2,‘a‘,4]) ...
- JS判断某变量是否为某数组中的一个值的3种方法
1.正则表达式 js 中判断某个元素是否存在于某个 js 数组中,相当于 PHP 语言中的 in_array 函数. 1 Array.prototype.in_array = function (e) ...
- PHP如何随机获取一个二维数组中的一个值
获取一个数组: $awardid_list=pdo_fetchall('select id from '.tablename($this->table_award)); 这是微擎的写法哈,意思就 ...
- C语言100题集合005-删除一维数组中所有相同的数,使之只剩一个
系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...
- jst通用删除数组中重复的值和删除字符串中重复的字符
以下内容属于个人原创,转载请注明出处,非常感谢! 删除数组中重复的值或者删除字符串重复的字符,是我们前端开发人员碰到很多这样的场景.还有求职者在被面试时也会碰到这样的问题!比如:问删除字符串重复的字符 ...
- C#如何删除数组中的一个元素
C#如何删除数组中的一个元素,剩余的元素组成新数组,数组名不变double[] arr = new double[n];需要删除的是第m+1个数据arr[m]求新数组arr.(新数组arr包含n-1个 ...
- leetcode-26.删除重复数组中的重复项
leetcode-26.删除重复数组中的重复项 题意 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数 ...
- leecode刷题(1)-- 删除排序数组中的重复项
删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的 ...
随机推荐
- spark on yarn 集群部署
概述 hadoop2.7.1 spark 1.5.1 192.168.31.62 resourcemanager, namenode, master 192.168.31.63 nodeman ...
- ant.design React使用Echarts,实力踩坑
最近项目用到Echarts(以下用ec代替),于是照猫画虎得引入到团队的antd项目中,但是遇到2个棘手问题: 1. ec对dom不渲染,检查后发现,原来是全局存在id重复,所以使用React时,最好 ...
- JavaScript的对象详解
JavaScript对象的概述 什么是对象,代表现实中的某个事物, 是该事物在编程中的抽象,多个数据的集合体(封装体),用于保存多个数据的容器 为什么要用对象,便于对多个数据进行统一管理 对象属于一种 ...
- Mysql 索引 事物
索引 针对庞大数据 加速查询 缺点 占用空间 分类: 普通索引: 通过 index 创建 唯一索引: 就是 unique key 主键索引: 就是 primary key 联合索引(多列)" ...
- 数组长度为len,数组元素的范围是0到len-1,找出数组的重复元素
public static int findDuplicate(int[] nums) { int len = nums.length; //注意这里的for循环写法,在交换元素后,i没有增加,还要继 ...
- 第11章 AOF持久化
AOF持久化在硬盘上保存的是对Redis进行的逻辑操作,类似InnoDB中的bin log.说白了就是你对一个Redis输入了哪些语句,AOF文件都会原封不动的保存起来,等到需要回复Redis的时候再 ...
- 江苏省选2019Round1游记
JSOI2019R1过去了. Day0 打板子.看白书. 晚上太热了,楼下还在打铁,睡不着. 折腾到好晚才勉强睡着. Day1 早上好困啊. 开T1.看起来T1的60分很可做的样子?5min打完了(为 ...
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(云端电脑(Windows)安装配置数据库,使用本地Navicat for MySQL和手机APP 远程连接测试)
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装配置数据库,使用Navicat for MySQL和手机APP 连接测试) 根据前面的教程把软件复制到云 ...
- 记一次InputStream引起的乱码
项目上线一周后,正准备看新闻的我突然接到了一个任务.线上突然出现了一条乱码的数据,需要解决这个bug.于是我放下了手中的保温杯,开始解决这个bug.经过一番折腾,发现是有一个同事在处理IO流上写得有点 ...
- [翻译] 如何在 ASP.Net Core 中使用 Consul 来存储配置
[翻译] 如何在 ASP.Net Core 中使用 Consul 来存储配置 原文: USING CONSUL FOR STORING THE CONFIGURATION IN ASP.NET COR ...