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 Header用于页面跳转要注意的几个问题总结
Oct 03 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
利用php + Laravel如何实现部署自动化详解
Oct 11 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 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
用libtemplate实现静态网页生成
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
js实现简单计算器
2015/11/22 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
uni-app如何实现增量更新功能
2020/01/03 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
Python读写Excel文件方法介绍
2014/11/22 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
台湾生鲜宅配:大口市集
2017/10/14 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
安全员岗位职责
2015/02/10 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
Python作用域和名称空间的详细介绍
2022/04/13 Python