【问题标题】:Outputting entire row of csv file in php在php中输出整行csv文件
【发布时间】:2013-03-13 00:51:55
【问题描述】:

我需要从表单上传 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 列,但我需要所有三列,整行。我还想随机抓取三行并将每一行打印出来。

【问题讨论】:

    标签: php csv random output


    【解决方案1】:

    $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];
    

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

    【讨论】:

    • 但是没有看到数组结构,我这里是在黑暗中拍摄..所以如果可以的话,请print_r()数组$line_of_text[$random_row]这样我可以看到它的结构。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-16
      • 2020-09-11
      • 1970-01-01
      • 2018-08-06
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      相关资源
      最近更新 更多