현재 위치: > 최신 기사 목록> array_slice를 사용하여 테이블 데이터의 페이지 매김 표시를 처리하십시오

array_slice를 사용하여 테이블 데이터의 페이지 매김 표시를 처리하십시오

gitbox 2025-05-26

Array_Slice는 배열의 일부를 가로 채는 PHP의 함수입니다. 원래 배열을 변경하지 않고 시작 위치와 길이를 지정하여 원래 배열에서 새 배열 조각을 반환합니다.

함수 정의는 다음과 같습니다.

 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
  • $ 배열 : 원래 배열을 가로 채 웁니다.

  • $ 오프셋 : 시작 위치를 가로 채십시오 (0부터 시작).

  • $ 길이 : 차단 된 요소의 수. 지정되지 않은 경우 배열의 $ 오프셋 에서 배열 끝까지의 모든 요소가 가로 채 웁니다.

  • $ preserve_keys : 원래 배열의 키 이름을 유지할지 여부. 기본적으로 유지되지 않습니다.

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

Pagination은 본질적으로 데이터를 여러 블록으로 나누어 한 번에 하나의 컨텐츠 블록 만 표시합니다. $ pagesize 데이터가 페이지 당 표시되어 $ currentPage 페이지의 데이터를 표시하기 위해 시작 위치는 다음과 같아야합니다.

 $offset = ($currentPage - 1) * $pageSize;

array_slice를 사용하여 데이터 의이 부분을 가로 채립니다.

예 : Array_Slice를 사용하여 테이블 데이터의 페이지 매김 표시를 구현합니다.

페이징 기능을 구현하는 방법을 보여주기 위해 시뮬레이션 된 2 차원 배열을 예로 들어 보겠습니다.

 <?php
// 데이터 시뮬레이션,데이터베이스에서 쿼리 된 결과 세트라고 가정합니다.
$data = [
    ['id' => 1, 'name' => '장 산', 'age' => 20],
    ['id' => 2, 'name' => 'Li Si', 'age' => 22],
    ['id' => 3, 'name' => '왕 우', 'age' => 23],
    ['id' => 4, 'name' => 'Zhao Liu', 'age' => 21],
    ['id' => 5, 'name' => 'Qian Qi', 'age' => 24],
    ['id' => 6, 'name' => '선 바', 'age' => 25],
    ['id' => 7, 'name' => 'Zhou Jiu', 'age' => 26],
    ['id' => 8, 'name' => '우시', 'age' => 27],
    // 더 많은 데이터를 생략하십시오
];

// 페이지 당 표시되는 조각 수
$pageSize = 3;

// 현재 페이지 번호(보통 GET 매개 변수 패스)
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;

// 총 페이지 수를 계산하십시오
$totalItems = count($data);
$totalPages = ceil($totalItems / $pageSize);

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

// 통과하다 array_slice 현재 페이지 데이터를 가져옵니다
$pageData = array_slice($data, $offset, $pageSize);

// 쇼 테이블
echo "<table border='1' cellpadding='5' cellspacing='0'>";
echo "<tr><th>ID</th><th>이름</th><th>나이</th></tr>";
foreach ($pageData as $row) {
    echo "<tr>";
    echo "<td>{$row['id']}</td>";
    echo "<td>{$row['name']}</td>";
    echo "<td>{$row['age']}</td>";
    echo "</tr>";
}
echo "</table>";

// 페이징 링크 표시
echo "<div style='margin-top:10px;'>";
for ($page = 1; $page <= $totalPages; $page++) {
    if ($page == $currentPage) {
        echo "<strong>$page</strong> ";
    } else {
        echo "<a href='http://gitbox.net/path/to/your_script.php?page=$page'>$page</a> ";
    }
}
echo "</div>";
?>

코드 구문 분석

  • 데이터 준비 : 예에서는 배열 $ 데이터가 시뮬레이션되며 실제 개발에서 데이터베이스 쿼리의 결과 일 수 있습니다.

  • 페이징 매개 변수 : $ Pagesize는 페이지 당 표시되는 조각 수를 제어하고 $ currentPage는 현재 페이지 번호를 얻습니다.

  • 총 페이지 수를 계산하십시오 : Ceil () 함수를 사용하여 총 페이지 수를 계산하여 페이징 내비게이션 생성을 용이하게합니다.

  • 오프셋 계산 : 배열 요소에서 가로 채기 위해 현재 페이지 번호를 계산합니다.

  • Array intercept : array_slice는 현재 페이지에 표시 해야하는 데이터의 하위 집합을 반환합니다.

  • HTML 테이블 디스플레이 : LOOP $ PAGEDATA 에서 출력 테이블 행입니다.

  • Pagination Navigation : 링크를 생성 한 다음 클릭하여 Get 매개 변수를 통해 페이지 번호를 전환합니다.

주목해야 할 것

  1. 페이지 번호 합법성 검증 <br> $ CurrentPage가 1보다 1보다 크지 않고 범위를 벗어나지 않도록하십시오.

  2. 성능 고려 사항 <br> 데이터 볼륨이 매우 크면 데이터베이스 쿼리에서 한계오프셋을 사용하여 모든 데이터를 메모리에로드 한 다음 Array_Slice를 사용하는 대신 페이징을 구현하는 것이 좋습니다.

  3. URL 도메인 이름을 일관성있게 유지하십시오 <br> 이 예에서는 페이징 링크 도메인 이름이 요구 사항을 충족하는 gitbox.net 으로 대체되었습니다.

요약

Array_Slice 는 배열 페이징을 처리하기위한 간단한 도구이며 소량의 데이터가있는 시나리오에 적합합니다. 시작 오프셋 및 인터셉트 길이를 계산하면 배열 기반 데이터 페이지 매김 디스플레이를 쉽게 구현할 수 있습니다. HTML 테이블과 Pagination Navigation을 결합하면 사용자 친화적 인 페이지 매김 기능을 완료 할 수 있습니다.

이 방법은 데이터 볼륨이 제한된 소규모 프로젝트 또는 응용 프로그램을 작업하는 경우 매우 실용적입니다.