PHP删除数组中的特定元素的代码


Posted in PHP onJune 28, 2012

比如下面的程序:

<?php $arr = array('apple','banana','cat','dog'); 
unset($arr[2]); 
print_r($arr); 
?>

程序运行结果:
Array ( [0] => apple [1] => banana [3] => dog )

但是这种方法的最大缺点是没有重建数组索引,就是说,数组的第三个元素没了。
经过查资料后,原来PHP提供了这个功能,只不过很间接。这个函数是array_splice()。
为了使用方便,我封装成了一个函数,方便大家使用:
<?php function array_remove(&$arr, $offset) 
{ 
array_splice($arr, $offset, 1); 
} 
$arr = array('apple','banana','cat','dog'); 
array_remove($arr, 2); 
print_r($arr); 
?>

经过测试可以知道,2的位置这个元素被真正的删除了,并且重新建立了索引。
程序运行结果:
Array ( [0] => apple [1] => banana [2] => dog )

PHP array_splice() 函数
array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代。
最后生成的数组将会返回。
语法:array_splice(array,offset,length,array)
array:必需。规定数组。
offset:必需。数值。如果 offset 为正,则从输入数组中该值指定的偏移量开始移除。如果 offset 为负,则从输入数组末尾倒数该值指定的偏移量开始移除。
length:可选。数值。如果省略该参数,则移除数组中从 offset 到 结尾的所有部分。如果指定了 length 并且为正值,则移除这么多元素。如果指定了 length 且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的元素。
array:被移除的元素由此数组中的元素替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。
如果函数没有删除任何元素 (length=0),则替代数组将从 start 参数的位置插入。
示例1:
<?php 
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); 
$a2=array(0=>"Tiger",1=>"Lion"); 
array_splice($a1,0,2,$a2); 
print_r($a1); 
?> 
//output : Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )

示例2:
<?php 
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); 
$a2=array(0=>"Tiger",1=>"Lion"); 
print_r(array_splice($a1,0,2,$a2)); 
?> 
//output : Array ( [0] => Dog [1] => Cat )

示例3:
<?php 
// length 参数设置为 0 
$a1=array(0=>"Dog",1=>"Cat"); 
$a2=array(0=>"Tiger",1=>"Lion"); 
array_splice($a1,1,0,$a2); 
print_r($a1); 
?> 
//output : Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat )
PHP 相关文章推荐
PHP分页函数代码(简单实用型)
Dec 02 PHP
比较时间段一与时间段二是否有交集的php函数
May 31 PHP
关于file_get_contents返回为空或函数不可用的解决方案
Jun 24 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
php的PDO事务处理机制实例分析
Feb 16 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PDO::errorCode讲解
Jan 28 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
PHP安全性漫谈
Jun 28 #PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
Jun 28 #PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 #PHP
php数组中删除元素的实现代码
Jun 22 #PHP
php数据结构与算法(PHP描述) 查找与二分法查找
Jun 21 #PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 #PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
Jun 21 #PHP
You might like
Access数据库导入Mysql的方法之一
2006/10/09 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
js实现小球在页面规定的区域运动
2020/06/16 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
python入门教程 python入门神图一张
2018/03/05 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
意大利男装网店:Vrients
2019/05/02 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
实习鉴定范文
2013/12/19 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
个人典型事迹材料
2014/12/30 职场文书
营销计划书范文
2015/01/17 职场文书
大学生逃课检讨书
2015/05/04 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
高中信息技术教学反思
2016/02/16 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
用python自动生成日历
2021/04/24 Python
vue+echarts实现多条折线图
2022/03/21 Vue.js
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers