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

PHP array_slice() 完全指南:截取、隨機、分頁一網打盡

     編輯:PHP 綜合知識

array_slice() 是 PHP 操作數組切片的核心函數,靈活支援正負偏移、長度控制、鍵名保留。本文系統講解語法、參數陷阱、實戰場景(隨機抽取、分頁、首尾截取),助你玩轉數組切片。

函數簽名

array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array

參數詳解

  • $offset:起始位置。>=0 從開頭數;<0 從結尾倒數(如 -1 為最後一個)。
  • $length:切片長度。>=0 返回該數量元素;<0 結尾前截斷絕對值個元素;null 截取到結尾。
  • $preserve_keys:true 保留原鍵名,false(預設)重置為 0 起始數字鍵。

核心範例

$input = ['a', 'b', 'c', 'd', 'e'];

// 從索引 2 開始到結尾
print_r(array_slice($input, 2));        // ['c','d','e']

// 從倒數第 2 個開始,長度 1
print_r(array_slice($input, -2, 1));    // ['d']

// 從開頭長度 3
print_r(array_slice($input, 0, 3));     // ['a','b','c']

// 保留鍵名對比
$arr = ['a'=>'A', 'b'=>'B', 'c'=>'C'];
print_r(array_slice($arr, 1, 2, false)); // [0=>'B', 1=>'C']
print_r(array_slice($arr, 1, 2, true));  // ['b'=>'B', 'c'=>'C']

實戰場景

1. 獲取隨機 N 條數據

$data = range(1, 100); // 假設 100 條記錄
shuffle($data);        // 打亂順序
$random5 = array_slice($data, 0, 5); // 取前 5 個

2. 簡易分頁

$page = 3; $pageSize = 10;
$offset = ($page - 1) * $pageSize;
$pageData = array_slice($allData, $offset, $pageSize);

3. 移除首尾元素

$trimmed = array_slice($arr, 1, -1); // 去掉第一個和最後一個

注意事項

  • 不修改原數組:返回新數組,原數組不變。
  • 鍵名重置陷阱:關聯數組預設會丟失鍵名,需 true 保留。
  • 負數長度:array_slice($arr, 0, -2) 等同於「除了最後兩個」。
  • 越界安全:$offset > count($arr) 返回空數組,不報錯。

對比:array_splice()

array_splice() 會修改原數組(刪除/替換),並返回被移除部分;array_slice() 純讀取。按需選擇。

熟練掌握 array_slice(),能大幅簡化數組切片、分頁、隨機抽樣等常見邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved