매일 개발 작업에서는 종종 많은 양의 CSV 파일 데이터를 처리하고 페이지에 표시해야합니다. PHP는 이러한 작업을 효율적으로 완료하는 데 도움이되는 많은 강력한 기능을 제공하며, 그중에는 Array_chunk가 매우 실용적인 기능입니다.
이 기사에서는 Array_Chunk를 사용하여 CSV 파일 데이터를 처리하고 Paginated를 표시하는 방법을 보여주는 예제를 단계별로 진행합니다.
먼저 Array_Chunk 함수의 기본 사용법을 이해해야합니다. Array_Chunk 함수는 배열을 여러 개의 작은 배열로 나누고 각 작은 배열의 크기는 지정된 두 번째 매개 변수에 의해 결정됩니다.
문법:
array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )
$ 배열 : 분할 해야하는 원래 배열.
$ 크기 : 분할 후 각 배열의 크기.
$ preserve_keys : 원래 배열의 키 이름을 유지할지 여부는 기본값이 False 이며, 이는 재설정 키 이름이 연속 정수임을 나타냅니다.
다음으로 PHP를 사용하여 CSV 파일을 처리하고 데이터를 세그먼트하고 Pagination 디스플레이의 기능을 구현합니다.
먼저 사용자 정보 또는 기타 유형의 데이터를 저장하는 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('문서打开失败!');
}
?>
페이지 당 10 개의 레코드를 표시한다고 가정하면 Array_Chunk 함수를 사용하여 페이지 당 10 블록으로 데이터를 분할 할 수 있습니다.
<?php
// 페이지 당 표시됩니다 10 데이터
$page_size = 10;
$data_chunked = array_chunk($data, $page_size);
?>
이 시점에서 $ data_chunked 어레이에는 여러 개의 작은 배열이 포함되어 있으며 각 작은 배열은 최대 10 개의 데이터를 포함합니다.
다음으로 페이징 기능을 구현해야합니다. 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];
?>
이제 현재 페이지에 데이터를 표시 할 수 있습니다. 각 데이터가 사용자 정보라고 가정하면 웹 페이지 에이 데이터를 표시 할 수 있습니다.
<?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>";
?>
마지막으로, 사용자가 다른 페이지를 탐색 할 수 있도록 페이지 하단에 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>";
?>
위의 모든 코드를 결합하여 전체 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>";
?>
위의 예를 통해 PHP의 Array_Chunk 함수를 사용하여 CSV 파일의 데이터를 여러 개의 작은 배열로 분할하는 방법을 이해하고 페이징 기능을 결합하여 웹 페이지에 데이터를 표시합니다. 실제 애플리케이션에서 기본 페이징 로직 외에도 AJAX로드 데이터, 검색 기능 추가 등을 통해 사용자 경험을 향상시킬 수 있습니다.
이 기사가 실제 프로젝트에서 CSV 파일 데이터를 더 잘 처리하고 효율적인 Pagination 디스플레이 기능을 실현하는 데 도움이되기를 바랍니다.