首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 陣列頭尾增刪函式詳解:array_push/pop/shift/unshift

     編輯:PHP 相關知識

四大核心函式對照

函式操作位置動作回傳值影響鍵名
array_push($arr, $val...)尾端推入一或多個值新陣列長度數值鍵重新索引
array_pop($arr)尾端彈出並移除最後一個被移除的值否
array_unshift($arr, $val...)頭部插入一或多個值新陣列長度數值鍵重新索引
array_shift($arr)頭部彈出並移除第一個被移除的值數值鍵重新索引

程式碼示範

<?php
$arr = ['a' => 'Horse', 'b' => 'Cat', 'c' => 'Dog'];
echo "原始: "; print_r($arr);

/* array_push */
array_push($arr, 'hello', 'world');
echo "push 後: "; print_r($arr);
/* 結果: [a=>Horse, b=>Cat, c=>Dog, 0=>hello, 1=>world] */

/* array_pop */
$last = array_pop($arr);
echo "pop 後 (移除 $last): "; print_r($arr);

/* array_shift */
$first = array_shift($arr);
echo "shift 後 (移除 $first): "; print_r($arr);

/* array_unshift */
array_unshift($arr, 'Horse');
echo "unshift 後: "; print_r($arr);

效能特性

  • array_push/pop:O(1) 操作尾端,效能最佳。
  • array_unshift/shift:O(n) 需重新索引所有數值鍵,大陣列頻繁操作頭部效能較差。
  • 大量頭部操作建議改用 SplDoublyLinkedList 或反轉陣列用 push/pop 再反轉。

堆疊與佇列模擬

// 堆疊 - 後進先出
$stack = [];
array_push($stack, 1, 2, 3);
$top = array_pop($stack); // 3

// 佇列 - 先進先出
$queue = [];
array_push($queue, 1, 2, 3);
$front = array_shift($queue); // 1

常見錯誤

  • 對關聯陣列使用 `array_push` 會產生數值鍵,破壞語意 → 改用 `$arr['newKey'] = $val`。
  • `array_shift` 後數值鍵歸零,若程式依賴原鍵名會出錯。
  • 傳遞非陣列變數會觸發 Warning,建議先 `is_array()` 檢查。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved