5.5 增加和删除数组元素
PHP为扩大和缩小数组提供了一些函数。对于那些希望模仿各种队列实现(FIFO、LIFO等)的程序员来说,这些函数可以提供便利。顾名思义,从这些函数的函数名(push、pop、shift和unshift)就清楚地反映出其作用。
注解 传统的队列是一种数据结构,删除元素与加入元素的顺序相同,就称为先进先出,或FIFO。相反,栈是另外一种数据结构,其中删除元素的顺序与加入时的顺序相反,这称为后进先出,或LIFO。
1. $arrayname[ ]
这不是一个函数,而是一个语言特性。只通过赋值就能增加数组元素,例如:
![]()
对于数值索引,还可以如下追加一个新元素:
![]()
但是,有时候需要一种更复杂的方式来增加数组元素(以及删除数组元素,这种功能无法用上述增加元素的方式来实现)。本节后面将介绍这些函数。
2. array_push()
![]()
array_push()函数将variable增加到target_array的末尾,成功时返回TRUE,否则返回FALSE。可以为此函数传递多个变量作为输入参数,同时向数组压入多个变量(元素)。如下例所示:
![]()
3. array_pop()
![]()
array_pop()函数返回target_array的最后一个元素,并在结束后重置数组的指针。示例如下:
![]()
4. array_shift()
![]()
array_shift()函数类似于array_pop(),只是它返回target_array的第一个数组元素,而非最后一个。其结果是,如果使用的是数值键,则所有相应的值都会下移,而使用关联键的数组不受影响。示例如下:

与array_pop()一样,array_shift()也会在结束时重置指针。
5. array_unshift()
![]()
array_unshift()函数与array_push()相似,只是它将元素增加到数组头,而不是尾。所有已有的数值键都会相应地修改,反映出在数组中的新位置,而关联键不受影响。示例如下:
![]()
6. array_pad()
![]()
array_pad()函数会修改target数组,将其大小增加到length指定的长度。这是通过在数组中填充由pad_value指定的值实现的。如果pad_value是正数,将填充到数组的右侧(后面);如果为负,则将填充到左侧(前面)。如果length等于或小于当前大小,将不做任何操作。示例如下:
![]()







