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) 额外空间的 ...
随机推荐
- UVA12265-Selling Land(细节处理)
Problem UVA12265-Selling Land Accept: 309 Submit: 3231Time Limit: 3000 mSec Problem Description Inp ...
- jQuery 短信验证码倒计时
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- (1)ESP8266微信门铃
http://rayuu.com/2017/11/13/esp8266-wechat-doorbell/(留做参考) 就是当门铃按键按下,微信会收到消息提醒. 若在家就算了,没在家会受到远程提示. 自 ...
- 支持“xxxContext”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库
将项目的数据库连接用户及密码修改后(切换用户,用户名与原来不一样,用户下对象结构一致),报以下错误: 支持“XXXDBContext”上下文的模型已在数据库创建后发生更改.请考虑使用 Code Fir ...
- Codechef CNTL Counting is life 生成函数
传送门--Vjudge 第一问很氵,如果\(K,N\)同奇偶就是\(2^K-1\),否则就是\(2^K-2\) 第二问似乎是可重排列,考虑指数型生成函数. 如何限制某些数必须要出现奇数/偶数次?考虑\ ...
- 2018年Java生态行业报告
0 Java版本使用占比 毫无疑问,Java8被广泛用于生产环境! Java 9和Java 10的使用率非常低,不到5%. 2017年,Java 7和更早的版本的数量大约是24.4%,现在是10. ...
- React组件重构:嵌套+继承 与 高阶组件
前言 在最近做的一个react项目中,遇到了一个比较典型的需要重构的场景:提取两个组件中共同的部分. 最开始通过使用嵌套组件和继承的方式完成了这次重构. 但是后来又用高阶组件重新写了一遍,发现更好一点 ...
- Web 应用 WEB框架 HTTP协议 初识Django
----------------------------财富存在于人的思想里,你没找到路,不等于没有路,你想知道将来要得到什么,你必须知道现在应该先做什么和先放弃什么! [web 应用] web应用 ...
- docker搭建mysql
下载mysql镜像 [root@localhost ~]# docker pull mysql: 创建mysql容器 [root@localhost ~]# docker run -itd --nam ...
- yosay
$ npm install yosay const yosay = require('yosay'); console.log(yosay('Hello, and welcome to my fant ...