有時候我們需要擴展一個數組,或者刪掉數組的一部分,PHP爲擴展和縮小數組提供了一些函數。對於那些希望模仿各種隊列實現(FIFO、LIFO)的程序員來說,這些函數可以提供便利。顧名思義,從這些函數的函數名(push、pop、shift和unshift)就清楚地反映出其作用。
PS:傳統的隊列是一種數據結構,刪除元素與加入元素的順序相同,就稱爲先進先出,或FIFO。相反,棧是另外一種數據結構,其中刪除元素的順序與加入時的順序相反,這成爲後進先出,或LIFO。
在數組頭添加元素
array_unshift()函數在數組頭添加元素。所有己有的數值鍵都會相應地修改,以反映其在數組中的新位置,但是關聯鍵不受影響。其形式如下:
1 |
int array_unshift ( array array ,mixed
variable[,mixed variable]) |
下面這個例子在$fruits數組前面添加了兩種水果:
1 |
$fruits = array ( "apple" , "banana" ); |
2 |
array_unshift ( $fruits , "orange" , "pear" ) |
在數組尾添加元素
array_push()函數的返回值是int型,是壓入數據後數組中元素的個數,可以爲此函數傳遞多個變量作爲參數,同時向數組壓入多個變量。其形式爲:
1 |
( array array ,mixed
variable [,mixed variable...]) |
下面這個例子在$fruits數組中又添加了兩個水果:
1 |
$fruits = array ( "apple" , "banana" ); |
2 |
array_push ( $fruits , "orange" , "pear" ) |
從數組頭刪除值
array_shift()函數刪除並返回數組中找到的元素。其結果是,如果使用的是數值健,則所有相應的值都會下移,而使用關聯鍵的數組不受影響。其形式爲:
1 |
mixed array_shift ( array array ) |
下面的例子刪除了$fruits數組中的第一個元素apple:
1 |
$fruits = array ( "apple" , "banana" , "orange" , "pear" ); |
2 |
$fruit = array_shift ( $fruits ); |
從數組尾刪除元素
array_pop()函數刪除並返回數組的最後一個元素。其形式爲:
1 |
mixed array_pop (aray
target_array); |
下面的例子從$states數組刪除了最後的一個州:
1 |
$fruits = array ( "apple" , "banana" , "orange" , "pear" ); |
2 |
$fruit = array_pop ( $fruits ); |