1

好的,所以我一直试图让它工作几个小时,但无法弄清楚。我有一个格式为的 csv 文件

item 1, item 1 stuff
item 2, item 2 stuff
item 3, item 3 stuff
item 4, item 4 stuff

我正在尝试使用 fgetscsv 将其解析为数组。

$file = fopen('test.csv', 'r');
    while (($MyCSVArray = fgetcsv($file)) !== FALSE) {

    print_r($MyCSVArray);
}
fclose($file);

我真的宁愿把它解析成一个关联数组,这样我就可以像这样索引它

MyCSVArray[item 1]

这将输出

item 1 stuff

但是我遇到的问题是,由于每个值后面都没有逗号,因此它将第 1 项的内容与第 2 项分组,就像这样

MyCSVArray[0] = item 1
MyCSVArray[1] = item 1 stuff item 2
MyCSVArray[2] = item 2 stuff item 3

也许我不理解 csv 文件或 csv 函数,但我真的需要它以我想要的方式工作,并且不明白如何让它工作,并且即将把我的脸砸到我的键盘上。

4

1 回答 1

1

只需像您一样读取数据并根据需要将值设置为新的关联数组

$new_array = array()
$file = fopen('test.csv', 'r');
while (($MyCSVArray = fgetcsv($file)) !== FALSE) {
    $new_array[$MyCSVArray[0]] = $MyCSVArray[1];
}
fclose($file);

var_dump($new_array);

对于问题的第二部分,如果下一行中的项目与上一行中的项目组合在一起,您的文件中似乎可能没有正确的行尾字符。

于 2013-10-04T18:56:12.850 回答