array_pop() 是 PHP 陣列操作的基礎函數,用於**彈出(移除並回傳)陣列的最後一個元素**,類似堆疊的「Pop」操作。本文詳細說明語法、回傳值、指標重置行為與實戰範例。
mixed array_pop ( array &$array )
$array 為**傳址呼叫**(引用),函數會直接修改原陣列。NULL 並觸發 E_WARNING。reset($array))。$stack = ['orange', 'banana', 'apple', 'raspberry']; $fruit = array_pop($stack); var_dump($fruit); // string(9) "raspberry" var_dump($stack); // ['orange', 'banana', 'apple']
$arr = []; $val = array_pop($arr); // NULL,並產生 Warning: array_pop() expects parameter 1 to be array, null given // 建議先檢查 $val = $arr ? array_pop($arr) : null;
$assoc = ['a' => 1, 'b' => 2, 'c' => 3]; $last = array_pop($assoc); // 3 // $assoc 變為 ['a' => 1, 'b' => 2]
$matrix = [[1,2], [3,4], [5,6]]; $row = array_pop($matrix); // [5,6]
$stack = []; array_push($stack, 'task1', 'task2'); $next = array_pop($stack); // 'task2' (LIFO)
$arr = [1,2,3]; next($arr); // 指標指向 2 array_pop($arr); // 移除 3,指標重置指向 1 echo current($arr); // 1(非 2)
array_pop($arr) 必須傳變數,**不可**寫 array_pop([1,2,3])(臨時陣列無法修改)。array_shift() 移除**第一個**元素並**重新索引數字鍵**(O(n)),效能差異極大。| 函數 | 操作位置 | 回傳值 | 重新索引 | 指標重置 |
|---|---|---|---|---|
| array_pop | 尾部 | 被移除元素 | 否 | 是 |
| array_shift | 頭部 | 被移除元素 | 是(數字鍵) | 是 |
| array_push | 尾部 | 新長度 | 否 | 否 |
| array_unshift | 頭部 | 新長度 | 是(數字鍵) | 否 |
掌握 array_pop() 的引用修改、指標重置、O(1) 特性,即可在堆疊實作、廣度優先搜尋、最近記錄移除等場景高效運用。