使用get_file_contents()创建一个数组

时间:2012-12-10 16:11:53

标签: php arrays csv

我正在尝试上传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],

2 个答案:

答案 0 :(得分:2)

file()打开将每个作为数组元素。在处理csv文件时,fgetcsv()及其函数族非常有用。

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

答案 1 :(得分: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文件。