1

我需要从表单上传 csv 文件。我能做到的。csv 文件包含参加比赛的人员的姓名和电子邮件。为了获得比赛获胜者,我需要 php 来读取文件、随机化行并打印出整行。

我一直在尝试使用我在 stackoverflow 上找到的以下代码,但它只从随机行输出一列。我需要它来输出整行,我需要三行。无论我尝试什么,我都无法获得此代码:

<?php

if (!isset($_FILES)){exit;}
$file = $_FILES['file'];

$file_handle = fopen($file['tmp_name'], "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]);


//Random row, with all three columns
$column = 1;
$column = 2;
$column = 3;


echo $line_of_text[$random_row][$column-1][$column-2][$column-3];

?>

如果我删除第 2 列和第 3 列,它会打印第 1 列,但我需要所有三列,整行。我还想抓取三个随机行并将每一行打印出来。

4

2 回答 2

0

$line_of_text[$random_row]在这种情况下是一个数组。假设我正确理解了它的结构,您可以通过执行以下操作轻松获得所有三列:

echo $line_of_text[$random_row][$column-1] . $line_of_text[$random_row][$column-2] . $line_of_text[$random_row][$column-3];

这会将三个数组值的值连接在一起。如果您想通过空格分隔它们,只需将 a 替换为.a. ' ' .或类似名称。

于 2013-03-13T01:13:50.530 回答
0

谢谢,串联成功了!出于某种原因,我不得不更改第 3 列的顺序,然后是第 2 列,然后是第 1 列。但这让我得到了我想要的结果。

于 2013-04-02T00:10:07.637 回答