我几乎不好意思问这个,但我一直在努力完成这项任务几个小时。如果没有彻底掌握fopen或fgetcsv函数,我有点迷失。我找到的每个例子都不适合我。
我正在寻找一种方法将CSV文件的每一行加载到一个数组中。例如,如果这是我的CSV文件:
Apple,Banana,Orange
Kiwi,Watermelon,Pineapple
Dog,Cat,Bird
然后这将是我的阵列:
Array
(
[0] => Apple,Banana,Orange
[1] => Kiwi,Watermelon,Pineapple
[2] => Dog,Cat,Bird
)
我很感激任何提示。谢谢! :)
仅供参考,这是我到目前为止所做的:
$list = '../reports/apples.csv';
$csvfile = fopen($list,'rb');
while(!feof($csvfile)) {
$listofthings[] = fgetcsv($csvfile);
}
fclose($csvfile);
print_r($listofthings);
但是,当我只想拥有一个大数组时,这就产生了一个多维数组。
Array
(
[0] => Array
(
[0] => Apple
[1] => Banana
[2] => Orange
)
[1] => Array
(
[0] => Kiwi
[1] => Watermelon
[2] => Pineapple
)
[2] => Array
(
[0] => Dog
[1] => Cat
[2] => Bird
)
)
答案 0 :(得分:2)
如果要按行分解文件,请使用file
。
$newArray = file('/path/to/file.csv');
如果您希望每个以逗号分隔的值作为数组的元素,请使用file_get_contents
并以逗号分隔。
$contents = file_get_contents('/path/to/file.csv');
$newArray = explode(',', $contents);
答案 1 :(得分:1)
您可以在阅读Nicholas建议的文件后explode
,或者您可以使用file
一次性完成所有操作:
$lines = file('/path/to/file.csv');
答案 2 :(得分:0)
正在寻找这个??
$mytext = "Apple,Banana,Orange
Kiwi,Watermelon,Pineapple
Dog,Cat,Bird";
$line_explode = explode("\n", $mytext);
$comma_explode = array();
foreach ($line_explode as $line) {
$comma_explode[] = explode(",", $line);
}
print_r($comma_explode);
输出
Array
(
[0] => Array
(
[0] => Apple
[1] => Banana
[2] => Orange
)
[1] => Array
(
[0] => Kiwi
[1] => Watermelon
[2] => Pineapple
)
[2] => Array
(
[0] => Dog
[1] => Cat
[2] => Bird
)
)