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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
多数据表共用一个页的新闻发布
Oct 09 PHP
封装一个PDO数据库操作类代码
Sep 09 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
10个实用的PHP代码片段
Sep 02 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
php+mysql数据库查询实例
Jan 21 PHP
php实现修改新闻时删除图片的方法
May 12 PHP
php结合正则获取字符串中数字
Jun 19 PHP
php封装的smarty类完整实例
Oct 19 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 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
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
javaScript产生随机数的用法小结
2018/04/21 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
python与php实现分割文件代码
2017/03/06 Python
便捷提取python导入包的属性方法
2018/10/15 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
欧洲著名的二手奢侈品网站:Vestiaire Collective
2020/03/07 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
爱国卫生月活动总结范文
2014/04/25 职场文书
市场营销调查计划书
2014/05/02 职场文书
高三霸气励志标语
2014/06/24 职场文书
会议欢迎词范文
2015/01/27 职场文书
bose降噪耳机音能消除人声吗
2022/04/19 数码科技