php - 将 csv 文件数据插入数组 (PHP)

标签 php file fgetcsv

我正在尝试将上传文件中的数据插入到一维数组中。

该文件的一行中有一个学生编号,如下所示:

392232、
392231、

这是我在网上找到的最常见的方法:

while (($line = fgetcsv($file, 25, ',')) !== FALSE) {
        //$line is an array of the csv elements
        print_r($line);
        }

但是,据我了解,这将为每一行创建一个数组($line)。这不是我想要的。

除此之外,我尝试了这个方法来查看它是否有效,并且我的代码在使用 ftgetcsv() 后没有打印出数组。文件成功上传。

这是我的代码:

    if(isset($_FILES['csv_file']) && is_uploaded_file($_FILES['csv_file']['tmp_name'])){

    //create file name
    $file_path = "csv_files/" . $_FILES['csv_file']['name'];

    //move uploaded file to upload dir
    if (!move_uploaded_file($_FILES['csv_file']['tmp_name'], $file_path)) {
        //error moving upload file
        echo "Error moving uploaded file";
    }

    print_r($_FILES['csv_file']);

    $file = fopen('$file_path', 'r');

    while (($line = fgetcsv($file, 25, ',')) !== FALSE) {
    //$line is an array of the csv elements
    print_r($line);
    }

    //delete csv file
    unlink($file_path);
}

首先,任何人都可以清楚地看出为什么至少将它们打印为单独的数据数组(每行)不起作用。

第二,是否可以对其进行设置,以便创建文件中所有行的一维数组?

非常感谢,

最佳答案

问题1是因为

print_r($_FILES['csv_file']);
$file = fopen('$file_path', 'r');

应该是:

$file = fopen($file_path, 'r');

对于问题 2,请查看 array_push

关于php - 将 csv 文件数据插入数组 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873540/

相关文章:

php - 存储查询结果的记录ID以便进一步浏览?

php - 使用 PHP 中的数据库根据前一个选择框填充第二个选择框中的值

php - 将数字字符串转换为浮点型数据

multithreading - 关闭申请后的文件复制

java - 无需递归即可获取结构中的文件数

PHP 的 fgetcsv 在文件开头返回 false

php - 来自 mysql 表的 CSV 逗号分隔文件

C++ - 解析文件在最后一行迭代两次

php - 为什么 fgetcsv() 函数将连续的 EMPTY 字段聚合到一个字段中,并将其放入一个数组位置?

php "continue"似乎不工作