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中上传大体积文件时需要的设置
Oct 09 PHP
功能齐全的PHP发送邮件类代码附详细说明
Jul 10 PHP
网友原创的PHP模板类代码
Sep 07 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
Zend Framework上传文件重命名的实现方法
Nov 25 PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
PHP数组访问常用方法解析
Sep 05 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
php 随机生成10位字符代码
2009/03/26 PHP
PHP 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
2014/06/20 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
详细介绍Python中的偏函数
2015/04/27 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
平面设计求职信
2014/03/10 职场文书
给校长的一封建议书
2014/03/12 职场文书
反腐倡廉标语
2014/06/24 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
作文评语集锦
2014/12/25 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python