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用mysql数据库存储session的代码
Mar 05 PHP
php中的观察者模式
Mar 24 PHP
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
QQ登录 PHP OAuth示例代码
Jul 20 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
php实现简单爬虫的开发
Mar 28 PHP
实例讲解php数据访问
May 09 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 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
PHP 采集心得技巧
2009/05/15 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
js获取变量
2006/08/24 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
react redux入门示例
2018/04/19 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
Python Process多进程实现过程
2019/10/22 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
汽车维修工岗位职责
2014/02/12 职场文书
班主任寄语大全
2014/04/04 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
研究生导师推荐信
2015/03/25 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
Golang 字符串的常见操作
2022/04/19 Golang
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS