如何删除数组中的元素

转载 2012年03月22日 09:56:04

PHP中的数组要添加元素非常简单,直接用赋值就行了,数组的key会自动增加,但是要删除数组中的元素呢?你想过吗?是不是很少遇到?我近日在处理一个购物篮程序时遇到了要删除数组中元素的问题,寻找了半天,终于找到了删除数组的方法,其实很简单.
开始我参照一篇文章《字符串数组,删除数组元素》(OSO中有)中的方法,用unset,但是有个缺陷.如$a是一个数组:

count($a); //得到4
unset($a[1]); //删除第二个元素
count($a); //得到3
echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue,
echo $a[1]; //无值
?> 

也就是说在删除数组中的元素后,数组中的元素个数(用count()得到)变了,但数组下标却没有重新排列,还必须用删除数组前的key来操作相应的值. 

后来我采用另一种方法,其实根本就不叫"方法",是用PHP4现成的函数array_splice().

count ($a); //得到4
array_splice($a,1,1); //删除第二个元素
count ($a); //得到3
echo $a[2]; //得到yellow
echo $a[1]; //得到blue
?>

把这个程序和前一个相对比,就可以看到,array_splice()不仅删除了元素,还把元素重排了,这样在数组各元素中间就不会有空值(如前例中的$a[1]). 

array_splice()其实是替换数组元素的函数,但如果不加替换值就简单的删除元素.下面是array_splice()的用法:
array array_splice (array input, int offset [, int length [, array replacement]])



参数input是要操作的数组;offset是从第几个元素开始,为正时从第一个元素开始数,为负时从最后一个元素开始数;length为要替换/删除元素的个数,省略时就从offset开始到数组结束,也是可正可负,原理和offset一样;relacement为要替换的值.



vb.net 数组去除重复

Public Function FilterRpeat(ByVal allUrls As String()) As String()  '去除重复函数,返回数组          '这个对象用来存储非...
  • esonbest1234
  • esonbest1234
  • 2016年02月24日 11:26
  • 462

删除数组重复元素(VB.NET)

  • 2010年07月20日 15:31
  • 666KB
  • 下载

VBS脚本运行库 ——文本文件的建立、追加、删除等

文本文件对于系统管理员来说是一个强大的系统管工具。这个对于现在的高级的图形界面和多用户的操作系统来说好象是不可能的。但是,简单的文本文件,比如 notepad 文件,仍然是系统管理的一个关键元素。文本...
  • xianda9133
  • xianda9133
  • 2016年04月20日 13:25
  • 2520

VBS中数组的动态改变、赋值、清除

ReDim varArrary(2,3) 2代表列,3代表行Dim strArraryDim lngCol 列Dim lngRow 行↑:上述变量的声明均采用匈牙利命名法strArrary=""For...
  • huangyiyun
  • huangyiyun
  • 2009年05月25日 20:27
  • 4996

VBS 删除数组元素

Private Function removearray(a() As Integer, index As Integer) j = 0 For i = 0 To UBound(a) - 1 ...
  • amibaren
  • amibaren
  • 2011年02月16日 00:04
  • 2659

遍历数组并且删除其中某个元素

今天写课程设计的代码,在程序中有一部分代码涉及到遍历整个数组,并且检查数组中的每一个元素是否符合要求,对于不符号要求的数组元素删除之,刚开始的时候,就像平常写遍历数组的方式遍历,并且检查数组中的元素,...
  • Stephan14
  • Stephan14
  • 2016年01月09日 23:15
  • 3482

VB 删除数组中指定元素实例

  • 2010年06月07日 14:13
  • 39KB
  • 下载

移除数组中的指定元素

题目描述 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组 输入例子: remove([1, 2, 3, 4, 2], 2) 输出例子: [1, 3,...
  • leledexixi
  • leledexixi
  • 2017年02月01日 16:13
  • 11957

[java]删除数组中的某一个元素

package org.company.project.test; import java.util.Arrays; import java.util.Scanner; public class Ar...
  • wahxsm
  • wahxsm
  • 2015年06月30日 12:32
  • 17880

C++抽象编程——STL实战(3)——数组元素的移除与合并

在STL中,对元素的插入跟移除也是对比数组的一大改进,这次我们就重点讨论一下怎么样在STL中移除跟合并元素。这里的所有方法都要导入头文件 < algorithm >实例一:移除指定与特定的值出口的方法...
  • redRnt
  • redRnt
  • 2017年04月10日 22:34
  • 783
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何删除数组中的元素
举报原因:
原因补充:

(最多只允许输入30个字)