php中需要简单的for循环帮助

时间:2012-08-04 17:24:57

标签: php

我的csv文件中有568行,而我的for循环看起来像这样

$csv = array();
$file = fopen('names.csv', 'r');

while (($result = fgetcsv($file)) !== false)
{
    $csv[] = $result;
}

fclose($file);

for ($row = 0; $row < 568; $row++)
{
echo "Serial no:<br/>";
echo "Name:".$csv[$row][1]."";
}

我想要这样的输出......

Serial no: 1
Name: Blah blah 1
Serial no: 2
Name: Blah blah 2
............
............
Serial no: 10
Name: Blah blah 10

对于每10行我想要序列1到10 ..一旦完成10行我想要一条水平线..

我的意思是我要打印

echo "<hr>";

每10行..

任何人都可以帮助我吗? 感谢

2 个答案:

答案 0 :(得分:2)

这应该有效:

for ($row = 0; $row < 568; $row++) {
    echo "Serial no:<br/>";
    echo "Name:".$csv[$row][1];
    echo (($row+1)%10 == 0) ? '<hr>' : '<br />';
}

说明:

  • 你不需要那个。“”在你的“名字”行的末尾。
  • $ row + 1:而不是$ row以避免打印&lt; hr&gt;在第一个元素(pos 0)之后
  • 回声(条件)? res1:res 2;就像if(条件)echo res1; else echo res2;

但真正的好方法是:

$file = fopen('names.csv', 'r');
$i = 1;

while (($result = fgetcsv($file)) !== false) {
    echo "Serial no:" .$i. "<br/>";
    echo "Name:".$result[1];
    echo ($i == 1) ? '<hr>' : '<br />';
    $i = ($i%10)+1;
}

fclose($file);

答案 1 :(得分:0)

$csv = array();
$file = fopen('names.csv', 'r');

while (($result = fgetcsv($file)) !== false)
{
    $csv[] = $result;
}

fclose($file);

for ($row = 0; $row < 568; $row++)
{
echo "Serial no:<br/>";
echo "Name:".$csv[$row][1]."";
   if ((int) $row % 10 === 0)
    {
        echo '<hr>';
    } 
}

应该做的伎俩:)