PHPでCSVランキング表示機能を作る方法
PHPでCSVランキング表示機能を作る方法を紹介します。このサンプルでは、CSVファイルから読み込んだデータを指定した項目の値で降順に並び替え、ランキング形式で表示できます。CSVファイル自体は変更されず、画面上の表示順だけがランキング順に切り替わります。売上ランキングや人気ランキング、アクセス数ランキングなどを表示したい場合に利用できます。
コードについて
本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
CSVランキング表示
| 順位 | 商品名 | 売上 |
|---|
コードをコピーして使おう!
<?php
// CSVファイル名です
$csv_file = 'data.csv';
// CSVデータを格納する配列です
$rows = [];
// CSVファイルを読み込みます
if (file_exists($csv_file)) {
$fp = fopen($csv_file, 'r');
if ($fp) {
// ヘッダー行を読み込みます
fgetcsv($fp);
// データを配列へ格納します
while (($data = fgetcsv($fp)) !== false) {
$rows[] = [
'name' => $data[0],
'score' => (int)$data[1]
];
}
fclose($fp);
}
}
// 売上の高い順に並び替えます
usort($rows, function($a, $b){
return $b['score'] <=> $a['score'];
});
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>CSVランキング表示</title>
<style>
body{
font-family:sans-serif;
background:#f8fafc;
margin:40px;
}
.php-csv-ranking_wrap{
max-width:800px;
margin:0 auto;
padding:24px;
border:1px solid #e5e7eb;
border-radius:18px;
background:#ffffff;
}
.php-csv-ranking_title{
font-size:22px;
font-weight:bold;
margin-bottom:20px;
}
.php-csv-ranking_table{
width:100%;
border-collapse:collapse;
}
.php-csv-ranking_table th,
.php-csv-ranking_table td{
border:1px solid #d1d5db;
padding:10px;
text-align:left;
}
.php-csv-ranking_table th{
background:#f1f5f9;
}
.php-csv-ranking_rank{
font-weight:bold;
color:#d97706;
}
</style>
</head>
<body>
<div class="php-csv-ranking_wrap">
<div class="php-csv-ranking_title">
CSVランキング表示
</div>
<table class="php-csv-ranking_table">
<tr>
<th>順位</th>
<th>商品名</th>
<th>売上</th>
</tr>
<?php foreach ($rows as $index => $row): ?>
<tr>
<td class="php-csv-ranking_rank">
<?= $index + 1 ?>位
</td>
<td>
<?= htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8') ?>
</td>
<td>
<?= htmlspecialchars($row['score'], ENT_QUOTES, 'UTF-8') ?>
</td>
</tr>
<?php endforeach; ?>
</table>
</div>
</body>
</html>
ファイル構成と設置方法
このサンプルでは、index.php と data.csv を同じフォルダに配置して使用します。CSVファイルを読み込み、売上の高い順に並び替えてランキング形式で表示します。CSVファイル自体は変更されません。
sample/
├── index.php
└── data.csv
index.php と data.csv をサーバーへアップロードし、ブラウザから index.php にアクセスしてください。CSVデータが売上の高い順に自動で並び替えられ、順位付きのランキングとして表示されます。元の data.csv の内容や並び順は変更されません。
コメント