array_slice是PHP 內置的數組操作函數,功能是從一個數組中根據指定的起始位置和長度,提取一部分數組元素並返回一個新數組。它的基本語法如下:
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$array :需要操作的原數組;
$offset :起始位置,支持負數(從數組末尾開始計數);
$length :截取長度,默認到數組末尾;
$preserve_keys :是否保留原數組的鍵名,默認為false 。
假設我們已經有一份完整的模擬數據集,比如一個用戶列表數組,現在我們想實現分頁效果,模擬後端API 返回部分數據。利用array_slice ,只需指定分頁的起始索引和每頁數量即可輕鬆截取所需數據片段。
示例如下:
<?php
// 完整模擬用戶數據
$users = [
['id' => 1, 'name' => 'Alice', 'email' => '[email protected]'],
['id' => 2, 'name' => 'Bob', 'email' => '[email protected]'],
['id' => 3, 'name' => 'Charlie', 'email' => '[email protected]'],
['id' => 4, 'name' => 'David', 'email' => '[email protected]'],
['id' => 5, 'name' => 'Eve', 'email' => '[email protected]'],
['id' => 6, 'name' => 'Frank', 'email' => '[email protected]'],
];
// 模擬分頁參數,假設當前頁和每頁條數
$page = 2;
$pageSize = 2;
// 計算起始索引
$offset = ($page - 1) * $pageSize;
// 使用 array_slice 截取數據
$pageData = array_slice($users, $offset, $pageSize);
// 生成模擬 API 返回格式
$response = [
'code' => 0,
'msg' => 'success',
'data' => $pageData,
];
// 輸出 JSON
header('Content-Type: application/json');
echo json_encode($response, JSON_PRETTY_PRINT);
該示例中, array_slice按照當前頁碼計算起始位置,從$users數組中截取相應數量的用戶數據,構造出符合接口返回規範的JSON 格式,方便前端調用和調試。
在實際項目中,接口可能包含基於URL 參數的分頁請求,如:
https://api.gitbox.net/users?page=2&pageSize=3
我們可以通過PHP 解析$_GET參數來動態控制返回的數據切片:
<?php
// 假設已有完整數據
$users = [/* 上面相同的數據 */];
// 獲取分頁參數,設置默認值
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
$pageSize = isset($_GET['pageSize']) ? max(1, intval($_GET['pageSize'])) : 3;
$offset = ($page - 1) * $pageSize;
$pageData = array_slice($users, $offset, $pageSize);
$response = [
'code' => 0,
'msg' => 'success',
'data' => $pageData,
];
header('Content-Type: application/json');
echo json_encode($response, JSON_PRETTY_PRINT);
通過這種方式,可以用簡單且高效的array_slice實現分頁模擬,滿足前端接口測試需求。