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安全技术之 实现php基本安全
Sep 04 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
php中全局变量global的使用演示代码
May 18 PHP
解析PHP对现有搜索引擎的调用
Jun 25 PHP
php中session过期时间设置及session回收机制介绍
May 05 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
php的sso单点登录实现方法
Jan 08 PHP
php简单判断文本编码的方法
Jul 30 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 21 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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 PDOStatement::rowCount讲解
2019/02/01 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
vue-cli项目代理proxyTable配置exclude的方法
2018/09/20 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
一道python走迷宫算法题
2018/01/22 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
Django实现简单的分页功能
2021/02/22 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
几道PHP面试题
2013/04/14 面试题
信息系统专业个人求职信范文
2013/12/07 职场文书
网站美工岗位职责
2014/04/02 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
教师自查自纠材料
2014/10/14 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python