현재 위치: > 최신 기사 목록> Array_Chunk를 사용하여 CSV 파일 데이터를 처리하고 페이지에 표시하는 방법

Array_Chunk를 사용하여 CSV 파일 데이터를 처리하고 페이지에 표시하는 방법

M66 2025-04-27

매일 개발 작업에서는 종종 많은 양의 CSV 파일 데이터를 처리하고 페이지에 표시해야합니다. PHP는 이러한 작업을 효율적으로 완료하는 데 도움이되는 많은 강력한 기능을 제공하며, 그중에는 Array_chunk가 매우 실용적인 기능입니다.

이 기사에서는 Array_Chunk를 사용하여 CSV 파일 데이터를 처리하고 Paginated를 표시하는 방법을 보여주는 예제를 단계별로 진행합니다.

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

먼저 Array_Chunk 함수의 기본 사용법을 이해해야합니다. Array_Chunk 함수는 배열을 여러 개의 작은 배열로 나누고 각 작은 배열의 크기는 지정된 두 번째 매개 변수에 의해 결정됩니다.

문법:

 array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )
  • $ 배열 : 분할 해야하는 원래 배열.

  • $ 크기 : 분할 후 각 배열의 크기.

  • $ preserve_keys : 원래 배열의 키 이름을 유지할지 여부는 기본값이 False 이며, 이는 재설정 키 이름이 연속 정수임을 나타냅니다.

2. CSV 파일을 처리하고 페이지에 표시하는 단계

다음으로 PHP를 사용하여 CSV 파일을 처리하고 데이터를 세그먼트하고 Pagination 디스플레이의 기능을 구현합니다.

1. CSV 파일을 읽습니다

먼저 사용자 정보 또는 기타 유형의 데이터를 저장하는 CSV 파일이 있다고 가정합니다. 이 파일을 읽고 PHP 배열로 변환해야합니다.

 <?php
// 읽다 CSV 문서
$file = 'data.csv';  // 가정 CSV 문서名为 data.csv
$data = array();

if (($handle = fopen($file, 'r')) !== false) {
    while (($row = fgetcsv($handle)) !== false) {
        $data[] = $row;  // 각 데이터 행을 배열에 저장하십시오
    }
    fclose($handle);
} else {
    die('문서打开失败!');
}
?>

2. Array_Chunk를 사용하여 데이터를 분할하십시오

페이지 당 10 개의 레코드를 표시한다고 가정하면 Array_Chunk 함수를 사용하여 페이지 당 10 블록으로 데이터를 분할 할 수 있습니다.

 <?php
// 페이지 당 표시됩니다 10 데이터
$page_size = 10;
$data_chunked = array_chunk($data, $page_size);
?>

이 시점에서 $ data_chunked 어레이에는 여러 개의 작은 배열이 포함되어 있으며 각 작은 배열은 최대 10 개의 데이터를 포함합니다.

3. 페이징 기능을 구현하십시오

다음으로 페이징 기능을 구현해야합니다. URL 매개 변수를 쿼리하여 현재 페이지를 결정한 다음 해당 페이지의 데이터를 표시하십시오.

 <?php
// 현재 페이지 번호를 얻으십시오,기본값은입니다 1
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$total_pages = count($data_chunked);  // 총 페이지 수

// 페이지 매개 변수가 유효하지 않은 경우,첫 페이지는 기본적으로 표시됩니다
if ($page < 1 || $page > $total_pages) {
    $page = 1;
}

// 현재 페이지의 데이터를 가져옵니다
$current_page_data = $data_chunked[$page - 1];
?>

4. 현재 페이지의 데이터를 표시합니다

이제 현재 페이지에 데이터를 표시 할 수 있습니다. 각 데이터가 사용자 정보라고 가정하면 웹 페이지 에이 데이터를 표시 할 수 있습니다.

 <?php
echo "<h2>현재 번호 $page 페이지 데이터:</h2>";

echo "<table border='1'>";
echo "<tr><th>사용자 이름</th><th>우편</th><th>전화</th></tr>";

foreach ($current_page_data as $row) {
    echo "<tr>";
    echo "<td>" . htmlspecialchars($row[0]) . "</td>";
    echo "<td>" . htmlspecialchars($row[1]) . "</td>";
    echo "<td>" . htmlspecialchars($row[2]) . "</td>";
    echo "</tr>";
}

echo "</table>";
?>

5. 페이징 내비게이션 표시

마지막으로, 사용자가 다른 페이지를 탐색 할 수 있도록 페이지 하단에 Pagination Navigation을 표시해야합니다.

 <?php
// 페이징 내비게이션을 보여줍니다
echo "<div>";
if ($page > 1) {
    echo "<a href='?page=" . ($page - 1) . "'>이전 페이지</a> ";
}
echo "현재 페이지:$page / $total_pages ";
if ($page < $total_pages) {
    echo "<a href='?page=" . ($page + 1) . "'>다음 페이지</a>";
}
echo "</div>";
?>

6. 코드 예제 완료

위의 모든 코드를 결합하여 전체 PHP 샘플 코드는 다음과 같습니다.

 <?php
// 읽다 CSV 문서
$file = 'data.csv';  // 가정 CSV 문서名为 data.csv
$data = array();

if (($handle = fopen($file, 'r')) !== false) {
    while (($row = fgetcsv($handle)) !== false) {
        $data[] = $row;  // 각 데이터 행을 배열에 저장하십시오
    }
    fclose($handle);
} else {
    die('문서打开失败!');
}

// 페이지 당 표시됩니다 10 데이터
$page_size = 10;
$data_chunked = array_chunk($data, $page_size);

// 현재 페이지 번호를 얻으십시오,기본값은입니다 1
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$total_pages = count($data_chunked);  // 총 페이지 수

// 페이지 매개 변수가 유효하지 않은 경우,첫 페이지는 기본적으로 표시됩니다
if ($page < 1 || $page > $total_pages) {
    $page = 1;
}

// 현재 페이지의 데이터를 가져옵니다
$current_page_data = $data_chunked[$page - 1];

// 显示현재 페이지的数据
echo "<h2>현재 번호 $page 페이지 데이터:</h2>";

echo "<table border='1'>";
echo "<tr><th>사용자 이름</th><th>우편</th><th>전화</th></tr>";

foreach ($current_page_data as $row) {
    echo "<tr>";
    echo "<td>" . htmlspecialchars($row[0]) . "</td>";
    echo "<td>" . htmlspecialchars($row[1]) . "</td>";
    echo "<td>" . htmlspecialchars($row[2]) . "</td>";
    echo "</tr>";
}

echo "</table>";

// 페이징 내비게이션을 보여줍니다
echo "<div>";
if ($page > 1) {
    echo "<a href='?page=" . ($page - 1) . "'>이전 페이지</a> ";
}
echo "현재 페이지:$page / $total_pages ";
if ($page < $total_pages) {
    echo "<a href='?page=" . ($page + 1) . "'>다음 페이지</a>";
}
echo "</div>";
?>

3. 요약 및 기술

위의 예를 통해 PHP의 Array_Chunk 함수를 사용하여 CSV 파일의 데이터를 여러 개의 작은 배열로 분할하는 방법을 이해하고 페이징 기능을 결합하여 웹 페이지에 데이터를 표시합니다. 실제 애플리케이션에서 기본 페이징 로직 외에도 AJAX로드 데이터, 검색 기능 추가 등을 통해 사용자 경험을 향상시킬 수 있습니다.

이 기사가 실제 프로젝트에서 CSV 파일 데이터를 더 잘 처리하고 효율적인 Pagination 디스플레이 기능을 실현하는 데 도움이되기를 바랍니다.