Array_sliceは、Arrayから連続的な要素を抽出するためのPHPの組み込み関数です。その基本的な構文は次のとおりです。
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$配列:インターセプトされる配列
$ offset :開始位置、0は最初の要素から始まることを意味します
$の長さ:インターセプトの長さ。指定されていない場合、デフォルトは配列の終わりになります。
$ preserve_keys :元の配列のキー名を保持するかどうか、デフォルトでfalseに
100個のデータを含む配列があり、ページごとに10個のデータを表示するページング機能を実装する必要があるとします。
現在のページ番号$ページ(1から始まる)
ページごとに表示された文字の数$ページサイズ
ARRAY INTERCEPTの開始点を計算します$ offset =($ page -1) * $ pagesize
Array_sliceを使用して、Arrayから現在のページのデータを傍受してください。
<?php
// データ配列をシミュレートします
$data = range(1, 100); // includeを生成します 1 到着 100 数字の配列
// 現在のページ番号を取得します,デフォルトは最初です 1 ページ
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page = max($page, 1); // 确保ページ码不小于 1
// 每ページ显示多少条
$pageSize = 10;
// オフセットを計算します
$offset = ($page - 1) * $pageSize;
// 使用 array_slice 截取当前ページ的数据
$pageData = array_slice($data, $offset, $pageSize);
// 输出当前ページ的数据
foreach ($pageData as $item) {
echo "データ項目:$item<br>";
}
// 生成分ページ链接
$totalPages = ceil(count($data) / $pageSize);
echo "<div>";
for ($i = 1; $i <= $totalPages; $i++) {
if ($i == $page) {
echo "<strong>$i</strong> ";
} else {
echo "<a href=\"https://gitbox.net/page.php?page=$i\">$i</a> ";
}
}
echo "</div>";
?>
page.php?page = 1にアクセスすると、ページ1に10個のデータが表示され、 page.php?page = 2にアクセスします。2ページのコンテンツが表示されます。
PHPのarray_slice関数と簡単なページング計算を組み合わせて、配列のページング関数を簡単に実装できます。ページングデータは通常、実際の開発のデータベースから来ていますが、 Array_sliceは、小さなデータセットまたはキャッシュデータの非常に軽量で効率的なソリューションです。
重要なポイントは、正しいオフセット$ offsetを計算し、ページごとに表示されるバーの数を制御して、ページング効果を簡単に達成できるようにすることです。