我有以下代码打开CSV文件并将结果导出为JSON格式。
但是,我想从while循环中删除最后一个,
。有人可以用我当前的代码解释我是如何做到这一点的吗?
<?php
ini_set('max_execution_time', 300);
$wantedColumns = array(3);
$row = 1;
if (($handle = fopen("data.csv", "r")) !== FALSE) {
echo '{
"data":
[';
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
if ($row == 1) {
echo '<tr>';
}else{
echo '<tr>';
}
for ($c=0; $c < $num; $c++) {
if (!in_array($c,$wantedColumns)) continue;
if(empty($data[$c])) {
$value = " ";
}else{
$value = $data[$c];
}
if ($row == 1) {
}else{
echo ''.$value.','; // comma added here
}
}
if ($row == 1) {
echo '</tr>';
}else{
echo '</tr>';
}
$row++;
//$value= substr($value, 0, -1);
}
echo ' ]
}';
echo '</tbody></table>';
echo '</center>';
fclose($handle);
}
?>
答案 0 :(得分:4)
在做这样的事情时,我更喜欢将值推送到数组,然后使用implode将它们连接起来
$values = array();
for ($c=0; $c < $num; $c++) {
if (!in_array($c,$wantedColumns)) continue;
if(empty($data[$c])) {
$value = " ";
}else{
$value = $data[$c];
}
if ($row == 1) {
}else{
$values[] = $value;
}
}
echo implode(',', $values);