简单地说,我有一个脚本,允许我从 HTML 表单上传 CSV 文件并将其保存为 PHP 中的数组。该脚本运行良好,尽管我需要将 CSV 文件保存为多维数组。
这是我的 CSV 文件的外观:
question1,answer1,answer2,answer3,answer4
question2,answer1,answer2,answer3,answer4
question3,answer1,answer2,answer3,answer4
这是为了将元素保存为:
uploaded[1][1],uploaded[1][2],uploaded[1][3],uploaded[1][4],uploaded[1][5]
uploaded[2][1],uploaded[2][2],uploaded[2][3],uploaded[2][4],uploaded[2][5]
uploaded[3][1],uploaded[3][2],uploaded[3][3],uploaded[3][4],uploaded[3][5]
这是我的工作上传脚本
<?php
if(isset($_POST['savecsv']))
{
$csv_array = Array();
$file = fopen($_FILES['upload_file']['tmp_name'], 'r');
if($file){
while (($line = fgetcsv($file)) !== FALSE) {
//$line is an array of the csv elements
array_push($csv_array,$line);
}
fclose($file);
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="upload_file" />
<input type="submit" name="savecsv"/>
</form>
我知道数组从 0 开始,虽然这个 CSV 是一个上传版本,用于向我的网站测验添加问题。我设置其余代码的方式只会从 [1][1] 向上处理。没有必要详细说明为什么,因为那是题外话,但这正是我要求的方式。因此,我认为所有 [0] 都应该留空。
此外,每行总是每行有 5 个元素。永远不会更多或永远不会更少。
我在网上进行了广泛的搜索,但似乎找不到合适的答案。
非常感谢所有帮助。