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日历[测试通过]
Mar 27 PHP
php PDO中文乱码解决办法
Jul 20 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
php开发环境配置记录
Jan 14 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
PHP安装memcached扩展笔记
May 28 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 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下10件你也许并不了解的事情
2008/09/11 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
babel基本使用详解
2017/02/17 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
python绘制立方体的方法
2018/07/02 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
2014迎新年晚会策划方案
2014/02/23 职场文书
教师演讲稿大全
2014/05/16 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
圣诞晚会主持词
2015/07/01 职场文书
优秀志愿者感言
2015/08/01 职场文书
《揠苗助长》教学反思
2016/02/20 职场文书