【发布时间】:2013-05-28 11:10:24
【问题描述】:
如何找到最后一次迭代:
这是一个 while 循环示例。我需要找到最后一次迭代,以便不会在末尾添加逗号。这是怎么做到的?
for($i=0;$i<count($files);$i++){
if (($handle = fopen($files[$i], "r")) !== FALSE) {
$isfirst = true;
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
if ($isfirst){
$isfirst = false;
continue;
}
$timestamp = strtotime($data[0].' '.$data[1]);
fputs($out, '['.(int)$timestamp.','.(float)$data[2].'],');
}
fclose($handle);
}
}
答案:
for($i=0;$i<count($files);$i++){
if (($handle = fopen($files[$i], "r")) !== FALSE) {
$isfirst = true;
$firstline = true;
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
if ($isfirst){
$isfirst = false;
continue;
}
if ($firstline) {
$timestamp = strtotime($data[0].' '.$data[1]);
fputs($out, '['.(int)$timestamp.','.(float)$data[2].']');
$firstline = false;
} else {
$timestamp = strtotime($data[0].' '.$data[1]);
fputs($out, ',['.(int)$timestamp.','.(float)$data[2].']');
}
}
fclose($handle);
}
}
【问题讨论】:
-
反之亦然:在除第一行之外的每一行的开头添加一个逗号
-
这是一个绝妙的主意。但是让我更新代码(我只包含了需要的内容)。我实际上并没有使用第一次迭代,因为那是标题。
标签: php while-loop iteration fgetcsv