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) 额外空间的 ...
随机推荐
- C#字节数组与字符串转换
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- numpy中矩阵乘法,星乘(*)和点乘(.dot)的区别
import numpy a = numpy.array([[,], [,]]) b = numpy.array([[,], [,]]) 星乘表示矩阵内各对应位置相乘,矩阵a*b下标(0,0)=矩阵a ...
- [CQOI2018]破解D-H协议
嘟嘟嘟 这不就是个bsgs板儿嘛. 顺便就复习了一下bsgs和哈希表. 头一次觉得我的博客这么好用,一下就懂了:数论学习笔记之高次不定方程 这里再补充几点: 1.关于这一段代码: int S = sq ...
- 第2章 认识JAVA虚拟机的基本结构
2.1 虚拟机的内存划分 垃圾回收系统既回收堆,也回收方法区和直接内存 直接内存其实是一块不受JVM管理的内存,但是收到计算机内存的限制 2.2 虚拟机参数 -Xmx:虚拟机最大可用内存 2.3 堆 ...
- Oracle数据块深入分析总结
http: 最近在研究块的内部结构,把文档简单整理了一下,和大家分享一下.该篇文章借助dump和BBED对数据 库内部结构进行了分析,最后附加了一个用BBED解决ORA-1200错误的小例子.在总结的 ...
- Spring Security(二十):6.2.3 Form and Basic Login Options
You might be wondering where the login form came from when you were prompted to log in, since we mad ...
- Sharding-JDBC实践(一)简介
转载自:ShardingSphere官网 目录 一.介绍 1. Sharding-JDBC 2. Sharding-Proxy 3. Sharding-Sidecar(TBD) 4. 混合架构 二.功 ...
- Java IO(五)——字符流进阶及BufferedWriter、BufferedReader
一.字符流和字节流的区别 拿一下上一篇文章的例子: package com.demo.io; import java.io.File; import java.io.FileReader; impor ...
- 性能调优3:硬盘IO性能
数据库系统严重依赖服务器的资源:CPU,内存和硬盘IO,通常情况下,内存是数据的读写性能最高的存储介质,但是,内存的价格昂贵,这使得系统能够配置的内存容量受到限制,不能大规模用于数据存储:并且内存是易 ...
- Centos7 安装 Redis
关闭防火墙:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启 ...