0

我正在尝试上传一个 CSV 文件并将其内容放入一个数组中,但我收到了一个错误:(10 后每行的此错误的倍数)

Notice: Undefined offset: 1 in C:\xampp\htdocs\amazon\upload_file.php on line 10

以下是我的代码示例:

if ($handle = file_get_contents($_FILES["file"]["tmp_name"])) {

$data = array();

while ($csv = array(file_get_contents($_FILES["file"]["tmp_name"]))) {
    $data = array(
        'order-id' => $csv[0],
        'order-item-id' => $csv[1], //This is line 10.
        'purchase-date' => $csv[2],
        'payments-date' => $csv[3],
4

2 回答 2

2

file()opens 将每个元素作为一个数组元素。fgetcsv()它的函数族在处理 csv 文件时非常有用。

您的代码array(file_get_contents($_FILES["file"]["tmp_name"]))将永远只有一个元素,因为 file_get_contents 返回一个字符串。

于 2012-12-10T16:14:01.573 回答
1

如果您的文件只有一行,则会出现此问题。

我想你需要这样做。

$row = explode(",", $csv[0]);
$data = array(
    'order-id' => $fileArray[0],
    'order-item-id' => $row[1], //This is line 10.
    'purchase-date' => $row[2],
    'payments-date' => $row[3]
);

此外,您可以使用fgetcsv()解析 CSV 文件等功能。

于 2012-12-10T16:14:10.213 回答