在PHP中循环fputcsv的问题,我该如何修复它?



我在循环fputcsv时遇到麻烦,我只得到我打开的packing.csv文件的最后一行。你觉得我做错了什么?我认为fputcsv是在while循环中还是我错了?

$row = 1;
if (($handle = fopen("packing.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$empWroked    = $data[Name];
$dateWroked    = $data[Dated];
$startTime          = $data[Start];
$endTime            =  $data[Finish];
$itemPacked         = $data[Item];
$nameEmp            = $data[Employee];
$startParts         = explode(":", $startTime);
$endParts           = explode(":", $endTime);
$startMinute        = (int)$startParts[1];
$startHour          = (int)$startParts[0];
$endMinute          = (int)$endParts[1];
$endHour            = (int)$endParts[0];
$differenceHour     = ($endHour - $startHour);
$differenceMinute   = ($endMinute - $startMinute);
$differenceHour     -= (($differenceMinute < 0) ? 1 : 0);
if ($differenceMinute < 0) 
$differenceMinute += 60;
$difference = $differenceHour * 60 + $differenceMinute;
if (!isset($sumArray1[$nameEmp])) {
$sumArray1[$nameEmp] = 0; // create new entry for nameEmp with balance=0
}
if (!isset($sumArray[$nameEmp])) {
$sumArray[$nameEmp] = 0; // create new entry for nameEmp with balance=0     
}   
$dataEff  =  [$empWroked ,   $itemPacked ,  round(($perMin * $sumArray[$nameEmp]  += $itemPacked ) / ($sumArray1[$nameEmp]  += $difference / $precentEff), 2)];
$out = fopen('packingresults.csv', 'w');
fputcsv($out, $dataEff , ',', ' ');
}
fclose($handle);
fclose($out);
}

谢谢你的帮助:)我找到了答案,它不是w或w+或r+,它是一个"a"。我希望这对将来的人有帮助:)

$out = fopen('packingresults.csv', 'a');
fputcsv($out, $dataEff );

}
fclose($out);
fclose($handle);


}

fclose($handle);
fclose($out);
}

最新更新