我正在尝试使用foreach发布3个数组,由于某种原因,最后的break无法正常工作,它将整个列表(40+)输出到页面上。

$file = fopen('names.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  //$line is an array of the csv elements

shuffle($line);

$i = 0;

foreach ($line as $number) {
    {
    if($i==3){ break; } else {
    $rtime = mt_rand(1, 7);
    echo $number; }

   $i++;
}

}


}
fclose($file);


看起来是这样的:take.ms/cLgIh,而应该只显示其中三个用户名。

最佳答案

我已经从这里下载了第一个示例CSV:-http://www.sample-videos.com/download-sample-csv.php

这段代码对我有用:

<?php

$file = fopen('SampleCSVFile_2kb.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
      //$line is an array of the csv elements

    shuffle($line);
    $i = 0;
    foreach ($line as $number) {
        if($i==3){
            exit;
        } else {
            $rtime = mt_rand(1, 7);
            echo $number.'<br/>';
            echo $i.'<br/>'; // you can remove this line
        }

       $i++;
    }


}
fclose($file);
?>


每页输出刷新:

http://prntscr.com/cln2ju

http://prntscr.com/cln2nf

注意:-如果仍然无法使用,请检查您的CSV文件。可能是它已损坏。

结论:-经过所有讨论之后,您的CSV文件已损坏。但是是的,代码改进也需要

10-05 20:48
查看更多