CSV文件看起来像这样:
user_id, fname, lname, country
001, cake, chocolate, US
002, ice cream, vanilla, US
003, pie, pumpkin, US
我想将它们分别保存到一个数组中,例如:
Array ( [0] => Array ( [0] => user_id [1] => fname [2] => lname [3] => country)
[1] => Array ( [0] => 001 [1] => cake [2] => chocolate [3] => US)
[2] => Array ( [0] => 002 [1] => ice cream [2] => vanilla [3] => US)
[3] => Array ( [0] => 003 [1] => pie [2] => pumpkin [3] => US)
)
当前,我的代码如下所示,但是只保存了最后一个元素:
$file = fopen('csvexample.csv', 'r');
$i = 0;
while (($line = fgetcsv($file)) !== FALSE) {
//$line is an array of the csv elements
$arr = array($i => $line);
$i++;
}
fclose($file);
print_r($arr);
请帮助!不确定我缺少什么
答案 0 :(得分:1)
$arr = array_map('str_getcsv', file('csvexample.csv'));
答案 1 :(得分:0)
像这样简单地添加到您的数组
$file = fopen('csvexample.csv', 'r');
$arr = []; // init the array just for completness
while (($line = fgetcsv($file)) !== FALSE) {
$arr[] = $line;
}
fclose($file);
print_r($arr);
答案 2 :(得分:-1)
尽管这不是您要求的,但我相信关联数组更合适。 (除非您有理由使用上述数组格式)。
我将这些行炸开,并使用第一行作为键,以后再使用array_combine使其成为关联数组。
TABLE_NAME$YYYYMMDD
输出:
printf("Tell me your age or brith day\n");
if(scanf("%d", &age)!=1){
printf("error");
}
else if(scanf("%d %d %d", &day,&month,&year)!=3){
printf("error");