萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP 刪除陣列最後一個元素:array_pop() 完整指南

函數原型

mixed array_pop ( array &$array )
  • 參數:陣列以參考傳遞,函數會直接修改原陣列
  • 返回值:被彈出的元素值;若陣列為空則返回 NULL
  • 副作用:陣列長度減 1,數值索引自動重排(關聯索引不變)

基本用法範例

<?php
$stack = ['PHP', 'JSP', 'ASP'];

echo "原始陣列:\n";
print_r($stack);

$last = array_pop($stack);
echo "\n彈出元素:$last\n";

echo "\n剩餘陣列:\n";
print_r($stack);
?>

輸出:

原始陣列:
Array
(
    [0] => PHP
    [1] => JSP
    [2] => ASP
)

彈出元素:ASP

剩餘陣列:
Array
(
    [0] => PHP
    [1] => JSP
)

進階場景與注意事項

1. 關聯陣列同樣適用

$data = ['a' => 1, 'b' => 2, 'c' => 3];
$val = array_pop($data);  // $val = 3,$data 變為 ['a'=>1, 'b'=>2]

2. 空陣列處理

$empty = [];
$result = array_pop($empty);  // $result === NULL,並觸發 Warning

建議先用 empty() 或 count() 判斷。

3. 配合 array_push() 實作堆疊

$stack = [];
array_push($stack, 'first', 'second');
$last = array_pop($stack);  // 後進先出 (LIFO)

4. 效能特性

  • 時間複雜度 O(1)
  • 不會重新索引關聯鍵名
  • 大陣列操作極快,適合高頻隊列場景

對比:array_shift() vs array_pop()

函數操作端索引重排適用場景
array_pop()陣列尾部數值鍵重排堆疊、移除最新項目
array_shift()陣列頭部所有數值鍵重排隊列、處理最舊項目

常見錯誤

// ❌ 錯誤:未用參考傳遞,無法修改原陣列
$arr = [1,2,3];
$val = array_pop($arr);  // 正確寫法本身就是參考,這裡只是示意常見誤區

// ❌ 錯誤:嘗試用於非陣列變數
$str = "abc";
array_pop($str);  // Warning,返回 NULL
copyright © 萬盛學電腦網 all rights reserved