儘管在PHP中允許直接訪問某個數組單元,但PHP仍提供了各種有趣的方式來處理數組。特別要說的是,某些函數使PHP數組非常容易的實現了一個棧或隊列。
array_pop
這個array_pop函數會刪除並返回數組的最後一個元素。
在下面的這個例子中,你將會看到在給定一個數組的3個元素中,如何刪除最後一個元素的值(索引最大的元素)並返回這個值。
$stack = array("orange", "banana", "apple");
$fruit = array_pop($stack);
echo $fruit."<br/>";
print_r($stack);
上面的例子中,效果相當於出棧,最後執行後結果爲:
apple
Array (
[0] => orange
[1] => banana
)
可以看到數組索引最大的那個值被刪除,而且賦值給了$fruit。當數組是一個空數組時,會返回一個NULL。
array_push
這個array_push函數可以向數組末尾添加一個或多個元素,並返回數組的長度。
$stack = array("orange", "banana");
array_push($stack, "apple");
print_r($stack);
上面的例子,效果相當於進棧,最後輸出的結果爲:
Array (
[0] => orange
[1] => banana
[2] => apple )
array_shift
array_shift() 將 array 的第一個單元移出並作爲結果返回,將 array 的長度減一併將所有其它單元向前移動一位。
所有的數字鍵名將改爲從零開始計數,文字鍵名將不變。
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
上面的例子中,實現效果相當於取出隊列首元素,最後輸出的結果爲:
Array (
[0] => banana
[1] => apple
[2] => raspberry
)
array_unshift
array_unshift可以向數組插入一個或多個新元素。插入的值將按順序放置到數組的開頭。
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
上面的例子,實現的效果相當於元素進入隊列,最後輸出的結果爲:
Array (
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)