PHP删除数组中的特定元素的代码

 更新时间:2012年06月28日 17:35:15   作者:  
我们知道,PHP没有提供专门删除一个特定数组元素的方法。但是可以通过unset()函数来完成这种要求
比如下面的程序:
复制代码 代码如下:

<?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中interface的用处详解

    关于PHP中interface的用处详解

    这篇文章主要给大家介绍了关于PHP中interface的用处的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • PHP中你可能忽略的性能优化利器:生成器

    PHP中你可能忽略的性能优化利器:生成器

    性能优化是我们开发中必不可少的一部分,下面这篇文章主要给大家介绍了关于PHP中你可能忽略的性能优化利器:生成器的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • PHP中的一些常用的超全局变量总结

    PHP中的一些常用的超全局变量总结

    PHP是一种广泛使用的服务器端脚本语言,它被用于开发各种Web应用程序,在PHP中,有一些特殊的全局变量,被称为超全局变量,在本文中,我们将深入了解PHP中的一些常用超全局变量,以及它们在Web开发中的重要性,需要的朋友可以参考下
    2023-11-11
  • PHP解决短信验证码轰炸的方法详解

    PHP解决短信验证码轰炸的方法详解

    这篇文章主要为大家详细介绍了如何利用PHP解决短信验证码轰炸的问题,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以学习一下
    2023-12-12
  • PHP session会话操作技巧小结

    PHP session会话操作技巧小结

    这篇文章主要介绍了PHP session会话操作技巧,结合实例形式详细总结分析了php中session会话操作的原理、配置方法、使用技巧与相关注意事项,需要的朋友可以参考下
    2016-09-09
  • PHP检查空值的方法总结

    PHP检查空值的方法总结

    在本篇文章里小编给大家整理了一篇关于PHP检查空值的方法总结内容,有兴趣的朋友们可以学习参考下。
    2021-08-08
  • 基于php+redis实现布隆过滤器

    基于php+redis实现布隆过滤器

    布隆过滤器(Bloom filter)是一种用于快速判断一个元素是否存在于集合中的数据结构,它可以有效地检索数据,而不需要存储实际的元素本身,本文给大家介绍了如何基于php+redis实现布隆过滤器,感兴趣的朋友可以参考下
    2023-12-12
  • php页码形式分页函数支持静态化地址及ajax分页

    php页码形式分页函数支持静态化地址及ajax分页

    这篇文章主要介绍了php页码形式分页函数,此分页支持静态化地址分页和无链接地址时的ajax分页,需要的朋友可以参考下
    2014-03-03
  • php通过隐藏表单控件获取到前两个页面的url

    php通过隐藏表单控件获取到前两个页面的url

    这篇文章主要介绍了php通过隐藏表单控件获取到前两个页面的url,此法比较实用,需要的朋友可以参考下
    2014-09-09
  • 一文精通php多版本管理工具phpbrew使用教程

    一文精通php多版本管理工具phpbrew使用教程

    这篇文章主要为大家介绍了php多版本管理工具phpbrew使用教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01

最新评论