我遇到了PHP问题 - 我有一个看起来像这样的CSV文件:
客人姓名,类别,抵达,离境,房价
约翰史密斯,休闲,01-04-10,02-04-10,150
Ann Watson,Private,01-04-11,02-04-11,120
现在 - 有数千行。我需要按类别对它们进行分组,然后为所有休闲添加费率,然后添加所有私人等等。所以我可以得到每个类别的总数。
我设法使用以下代码导入CSV文件:
<?php
$fp = fopen('bookings.csv','r') or die("can't open file");
print "<table>\n";
while($csv_line = fgetcsv($fp,1024)) {
print '<tr>';
for ($i = 0, $j = count($csv_line); $i < $j; $i++)
{
print '<td>'.$csv_line[$i].'</td>';
}
print "</tr>\n";
}
print '</table>';
fclose($fp) or die("can't close file");
?>
但是我很难将它们分组并将值变为变量(来自相关单元格的特定值)
有人可以协助吗?
感谢
答案 0 :(得分:0)
这是基于fgetcsv的official PHP Doc。
$ratings = array()
if (($handle = fopen("bookings.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if(!isset($ratings[$data[1]]))
$ratings[$data[1]] = $data[4];
$ratings[$data[1]] += $data[4];
}
fclose($handle);
var_dump($ratings);
答案 1 :(得分:0)
您的csv文件应遵循数据库的模式。如果您的csv文件列是此访客姓名,类别,到达,离开,费率,这也应该是您的数据库的格式。我建议在显示之前将数据存储在数据库中。试试这段代码
if (isset($_FILES['file']))
{
//Import uploaded file to Database
$handle = fopen($_FILES['file']['tmp_name'], "r");
while (($data = fgetcsv($handle, 5000, ",")) !== FALSE)
{
$import= mysqli_query ($connect,"INSERT into table(Column_1,Column_2,Column_3,Column_4)
values('$data[0]','$data[1]','$data[2]','$data[3]')");
}
//fclose($handle);
}
else
{
echo "<script>alert('No File Selected')
</script>";
}