从csv输出随机记录?

时间:2012-01-26 21:20:31

标签: php csv

我有一个包含6列的csv文件。我想随机将一条记录(不是整行)返回到我的网页。例如,从第5行返回第1列和第4列。

下面的代码返回整个文件(第1,2,3列)。我只想要返回一行。如何修改此代码以恢复一条记录?

<?PHP
$csvfile = "table.csv";
$file_handle = fopen($csvfile, "r");
    while (!feof($file_handle) ) {
        $line_of_text = fgetcsv($file_handle, 1024);
        print $line_of_text[0] . $line_of_text[1]. $line_of_text[2] . "<BR>";
    }
fclose($file_handle);
?>

2 个答案:

答案 0 :(得分:1)

使用上面的代码,您可以修改它以显示特定的行和列。正如@Dagon在他的帖子中提到的,你可以使用array_rand进行随机输入(见下文)。如果愿意,您还可以在数组中指定行和列位置。

<?php

$csvfile = "table.csv";
$file_handle = fopen($csvfile, "r");
$line_of_text = array();

while (!feof($file_handle) ) {
    $line_of_text[] = fgetcsv($file_handle, 1024);
}
fclose($file_handle);

// Random Row and Column
$random_row = array_rand($line_of_text);
$random_column =  array_rand($line_of_text[$random_row]);
echo $line_of_text[$random_row][$random_column];

//Specified Row 5 Column 1
$row = 5;
$column = 1;
echo $line_of_text[$row-1][$column-1];
?>

答案 1 :(得分:0)

效率低下,但您可以将打印更改为

$p[]= ...

然后循环

echo $p[array_rand($p)];