如何将键值对存储在.csv文件中,然后将它们作为关联数组检索?

时间:2014-08-06 21:28:35

标签: php file csv associative-array fgetcsv

当我为包含内容.csv的{​​{1}}文件应用以下代码时,我得到输出: WaterMelon,BlueBerry,BlackBerry

我得到的输出是一个简单的数组,因为我已将简单值存储到Array ( [0] => WaterMelon, [1]=>BlueBerry, [2]=>BlackBerry )文件中。

问题: -

但是,如果我想将.csv存储在.csv文件中,然后输出如下输出: key-value pairs 我该怎么办?

Array ( [FruitOne] => WaterMelon, [FruitTwo]=>BlueBerry, [FruitThree]=>BlackBerry )

2 个答案:

答案 0 :(得分:1)

CSV文件可以多次拥有标题行。因此,您可以使用它来阅读第一行,然后使用array_combine

$headers = fgetcsv($file);
while (($line = fgetcsv($file)) !== FALSE) {
    print_r(array_combine($headers, $line));
}

在创建CSV文件时使用相同的概念来添加标题。

或者,只需自己定义$headers并使用相同的循环array_combine

$headers = array('FruitOne', 'FruitTwo', 'FruitThree');

答案 1 :(得分:0)

尝试这样的事情:

<?php 
    function getArrayFromCsv($file) { 
        if (($handle = fopen($file, "r")) !== FALSE) { 
            while (($lineArray = fgetcsv($handle)) !== FALSE) { 
               $dataArray[$lineArray[0]] = $lineArray[1]; 
            } 
            fclose($handle); 
        } 
        return $dataArray; 
    } 
?>