현재 위치: > 최신 기사 목록> CMS에서 Array_Slice를 사용하여 기사 분류 및 페이지를 구현하십시오.

CMS에서 Array_Slice를 사용하여 기사 분류 및 페이지를 구현하십시오.

gitbox 2025-05-26

1. 페이징의 원리에 대한 간단한 설명

특정 카테고리의 모든 기사를 포함하는 배열이 있다고 가정합니다. 페이징의 핵심은 현재 페이지 번호와 각 페이지에 표시된 조각 수를 기반으로 배열에서 해당 데이터 조각을 가로 채는 것입니다.

페이징 매개 변수는 일반적으로 다음을 포함합니다.

  • $ 페이지 : 현재 페이지 번호

  • $ pageize : 페이지 당 표시되는 기사 수

  • $ 오프셋 : 오프셋, ($ page -1) * $ pagesize 로 계산

Array_Slice를 사용하여 기사 배열에서 $ 오프셋으로 시작하여 페이지 화를 달성하기 위해 $ Pagesize 기사를 삽입 할 수 있습니다.


2. 코드 예제

아래는 Array_Slice를 사용하여 기사 분류 페이지 매김을 구현하는 방법을 보여주는 간단한 예입니다.

 <?php
// 모든 기사 배열을 카테고리로 시뮬레이션합니다
$articles = [
    ['id' => 1, 'title' => '제 1 조', 'category' => '과학 기술'],
    ['id' => 2, 'title' => '제 2 조', 'category' => '과학 기술'],
    ['id' => 3, 'title' => '제 3 조', 'category' => '삶'],
    ['id' => 4, 'title' => '제 4 조', 'category' => '과학 기술'],
    ['id' => 5, 'title' => '제 5 조', 'category' => '삶'],
    ['id' => 6, 'title' => '제 6 조', 'category' => '과학 기술'],
    ['id' => 7, 'title' => '제 7 조', 'category' => '과학 기술'],
];

// 카테고리를 선택하십시오
$category = '과학 기술';

// 현재 기사를 필터링하십시오
$categoryArticles = array_filter($articles, function ($article) use ($category) {
    return $article['category'] === $category;
});

// 인덱스를 재건하십시오,사용하기 쉽습니다 array_slice
$categoryArticles = array_values($categoryArticles);

// 현재 페이지 번호,~에서 URL 얻다,기본 1 페이지
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;

// 每페이지显示文章数
$pageSize = 3;

// 오프셋을 계산합니다
$offset = ($page - 1) * $pageSize;

// 截取当前페이지的文章
$currentPageArticles = array_slice($categoryArticles, $offset, $pageSize);

// 输出当前페이지文章
foreach ($currentPageArticles as $article) {
    echo "<h3>" . htmlspecialchars($article['title']) . "</h3>";
}
?>

3. Pagination Navigation의 간단한 구현

Pagination은 콘텐츠를 표시해야 할뿐만 아니라 사용자에게 전환 페이지로 탐색을 제공합니다. 총 페이지 수는 총 기사 수를 기반으로 계산할 수 있으며 PAGED 링크는 동적으로 생성 될 수 있습니다.

 <?php
$totalArticles = count($categoryArticles);
$totalPages = ceil($totalArticles / $pageSize);

for ($i = 1; $i <= $totalPages; $i++) {
    if ($i == $page) {
        echo "<strong>$i</strong> ";
    } else {
        echo "<a href=\"http://gitbox.net/yourcms?page=$i\">$i</a> ";
    }
}
?>

여기서는 http://gitbox.net을 샘플 도메인 이름으로 사용하며 실제 상황에 따라 교체 할 수 있습니다.


4. 요약

PHP의 Array_Slice 기능을 사용하면 분류 된 기사의 페이징 디스플레이에 적합한 배열 데이터 페이징을 구현하는 것이 매우 편리합니다. 키는 오프셋을 올바르게 계산하고 분류 필터링 후 배열을 슬라이스하는 것입니다. 간단한 페이지 매김 내비게이션과 함께 기사 분류 페이지 매김을 위해 대부분의 CMS의 요구를 충족시킬 수 있습니다.

이 방법은 데이터베이스 페이징에 의존하지 않으며 데이터가 작거나 데이터가 배열로 사전로드 된 시나리오에 적합합니다. 대량의 데이터의 경우 효율성을 향상시키기 위해 데이터베이스의 페이지 매김 쿼리를 사용하는 것이 좋습니다.