PHP數組實現棧和隊列:push,pop,shif,unshift

儘管在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
)

發佈了26 篇原創文章 · 獲贊 62 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章