我正在尝试将上传文件中的数据插入到一维数组中。
该文件的一行中有一个学生编号,如下所示:
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/