현재 위치: > 최신 기사 목록> Array_Slice를 사용하여 배열 페이징 내비게이션 로직을 구현하십시오

Array_Slice를 사용하여 배열 페이징 내비게이션 로직을 구현하십시오

gitbox 2025-05-29

웹 개발에서 페이징은 일반적인 기능 중 하나입니다. 기사 목록, 제품 카탈로그 또는 사용자 리뷰를 표시하든 Pagination은 한 번에 과도한 데이터로드로 인해 느린 페이지로드를 피하는 효율적인 솔루션입니다.

PHP는 매우 실용적인 기능 array_slice ()를 제공하며 배열에서 요소의 일부를 쉽게 추출 할 수 있습니다. 이 기능을 결합하여 기본 배열 페이징 내비게이션 기능을 쉽게 구현할 수 있습니다. 이 기사를 사용하면 단계별로 구현할 수 있습니다.

1. array_slice 함수를 이해하십시오

Array_Slice () 의 기본 구문은 다음과 같습니다.

 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
  • $ 배열 : 원래 배열

  • $ 오프셋 : 시작 위치 (0부터 시작)

  • $ 길이 : 선택적 매개 변수, 반환 된 요소 수입니다

  • $ preserve_keys : 원래 키 이름을 유지할지 여부, 기본값은 false입니다.

2. 샘플 데이터

여러 기사 제목이 포함 된 배열이 있다고 가정합니다.

 $articles = [
    "제 1 조", "제 2 조", "제 3 조", "제 4 조", "제 5 조",
    "제 6 조", "제 7 조", "제 8 조", "제 9 조", "제 10 조"
];

페이지 당 3 개의 기사가 표시되기를 원합니다.

3. 페이징 로직 구현

먼저, 현재에있는 페이지를 알고 페이지 번호를 기반으로 해당 오프셋을 계산해야합니다.

 <?php
$articles = [
    "제 1 조", "제 2 조", "제 3 조", "제 4 조", "제 5 조",
    "제 6 조", "제 7 조", "제 8 조", "제 9 조", "제 10 조"
];

$perPage = 3;
$totalArticles = count($articles);
$totalPages = ceil($totalArticles / $perPage);

// 현재 페이지 번호를 얻으십시오
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($page < 1) $page = 1;
if ($page > $totalPages) $page = $totalPages;

// 현재 페이지의 오프셋을 계산하십시오
$offset = ($page - 1) * $perPage;

// 사용 array_slice 현재 페이지의 데이터를 가져옵니다
$currentPageArticles = array_slice($articles, $offset, $perPage);
?>

4. 페이지 내용을 표시합니다

다음으로 현재 페이지의 데이터를 페이지에 출력합니다.

 <ul>
<?php foreach ($currentPageArticles as $article): ?>
    <li><?php echo htmlspecialchars($article); ?></li>
<?php endforeach; ?>
</ul>

5. 페이징 내비게이션 링크를 생성합니다

또한 페이지 하단에 페이지 회전 링크를 추가해야합니다.

 <div class="pagination">
    <?php if ($page > 1): ?>
        <a href="https://gitbox.net/pagination.php?page=<?php echo $page - 1; ?>">이전 페이지</a>
    <?php endif; ?>

    <?php for ($i = 1; $i <= $totalPages; $i++): ?>
        <?php if ($i == $page): ?>
            <strong><?php echo $i; ?></strong>
        <?php else: ?>
            <a href="https://gitbox.net/pagination.php?page=<?php echo $i; ?>"><?php echo $i; ?></a>
        <?php endif; ?>
    <?php endfor; ?>

    <?php if ($page < $totalPages): ?>
        <a href="https://gitbox.net/pagination.php?page=<?php echo $page + 1; ?>">다음 페이지</a>
    <?php endif; ?>
</div>

6. 요약

Array_Slice () 및 기본 페이징 로직을 통해 모든 배열 컨텐츠에 페이징 기능을 추가 할 수 있습니다. 이 방법은 데이터 볼륨이 작고 정적 컨텐츠 목록, 캐시 된 데이터 또는 구성 항목 표시 등과 같은 데이터베이스 작동이 필요하지 않은 시나리오에 적합합니다. 더 큰 데이터의 경우 Pagtination Query에 데이터베이스의 한계 조항을 사용하는 것이 좋습니다.

Mastering Array_Slice () 는 효율적인 PHP 응용 프로그램을 구축하는 데 중요한 단계입니다. 이 기사가 도움이되기를 바랍니다!