• ホーム
  • PHP
  • PHPでCSVファイルを1ページの表示数を指定してソート表示。簡易ページネイション付。

PHPでCSVファイルを1ページの表示数を指定してソート表示。簡易ページネイション付。

PHPでCSVファイルを1ページの表示数を指定してソート表示。簡易ページネイション付。

PHPでCSVを読み込み表示させる場面が多々ありますが、指定列のデータでソート(並べ替え)しながら、さらに1ページの表示数を指定するコード。

【CSV】

11<>12<>13<>14<>15<>
21<>22<>23<>24<>25<>
31<>32<>33<>34<>35<>
41<>42<>43<>44<>45<>
51<>52<>53<>54<>55<>

【PHP】

<?php
/////////////
// 1ページ表示数
/////////////
$DISPALY = 5;

/////////////
// データファイル
/////////////
$datafile = file("data.csv");

/////////////
// データ読み込み
/////////////
foreach($datafile as $value){
   $column = explode('<>', $value);
   $data[] = array(
      'name0' => $column[0],
      'name1' => $column[1],
      'name2' => $column[2],
      'name3' => $column[3]
   );
}

/////////////
// 列の配列
/////////////
foreach($data as $key => $value){
   $name0[$key] = $value['name0'];
   $name1[$key] = $value['name1'];
   $name2[$key] = $value['name2'];
   $name3[$key] = $value['name3'];
}

/////////////
// データソート
/////////////
//SORT_ASC,//小さい順
//SORT_DESC,//大きい順

array_multisort(
   $name0,SORT_ASC,
   $name1,SORT_ASC,
   $name2,SORT_ASC,
   $name3,SORT_ASC,
   $data
);

/////////////
// 結果の常時
/////////////
$page = $_GET['page'];
if($page < 1){ $page = 1; } $start = $DISPALY * ($page-1); $end = $DISPALY + $start; if($end > count($data)){ $end = count($data); } for($i=$start; $i<$end; $i++){ echo '<li>' .$name0[$i]. '|' .$name1[$i]. '|' .$name2[$i]. '|' .$name3[$i]. '</li>'."\n"; } ///////////// // ページリンク ///////////// if($start > 0){ echo '<a href="./?page=' .($page-1). '">前のページ</a>'."\n"; } if($end < count($data)-1){ echo '<a href="./?page=' .($page+1). '">次のページ</a>'."\n"; } ?>

ページ遷移は、前ページ・次ページの簡易リンクとなります。

PHP
2021.05.13 19:25
2021.05.13 22:04

Related entry

Pickup entry