使用PHP按列显示CSV的随机行

时间:2012-11-02 16:08:33

标签: php csv random

我想从CSV文件中选择一个随机行并显示它,同时还能通过css / html添加样式。理想情况下,我可以设置每个键(随机选择的行)单独显示(作为样式)。

活动,描述,步骤1,步骤2,步骤3,评论

可以显示为

活动
描述
- 第1步 - 第2步 - 第3步 的评论

我一直在使用以下代码,但是我无法将值分解为单独设置它们。

<? 

$sep=","; // separator 
$mycsv=file("hopper-01.csv"); 
$row=rand(0,count($mycsv)-1); 
$data=explode($sep,$mycsv[$row]); 

$num = count ($data); 

for ($c=0; $c < $num; $c++) { 
  print $data[$c] . "<br>"; 
} 

?>

2 个答案:

答案 0 :(得分:1)

你必须提前知道你的CSV的结构(看起来你好像)。在这种情况下,您只需根据键进行不同的样式:

for ($c = 0; $c < $num; $c++) {
   switch ($c) {
      case 0:
         echo "<strong>" . $data[$c] . "</strong><br>";
         break;
      case 1:
         echo "<em>" . $data[$c] . "</em><br>";
         break;
      case 2:
      case 3:
      case 4:
         echo "- " . $data[$c] . "<br>";
   }
}

...等。

答案 1 :(得分:0)

   Try This code: 

   $newfilename="hopper-01.csv";
    $filename = fopen($newfilename,"r");
    $content="";

    $i=0;
    while(!feof($filename))
      {
    $content=fgetcsv($filename,100000,','); 
        if($content[0]!="")
          {
    echo $content[0];
    echo"<br>";
    echo $content[1];
    echo"<br>";
    echo $content[2];
    echo"<br>";
    echo $content[3];
    echo"<br>";
    echo $content[4];
    echo"<br>";
              }
      }

    fclose($filename);