2011-03-10 154 views
3

我现在正在做一个简单的事情,我要从一个CSV文件读取,该列A包含代码,如“EN”,B列包含特定的名称“英语”等,我想读它们到一个关联数组中。如何在While循环中初始化关联数组?

我现在做的事情是这样的:

$handle = fopen("Languages.csv","r") or die("EPIC FAIL!"); 

    $languageArray = array(
    while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) 
    { 
       $row[0] => $row[1], 
    } 
) 

但它实际上抱怨我的语法,所以我只是想知道如果有一种方法通过获取我的csv文件中的所有行初始化我的关联数组,并将第一个字符串(来自列A)作为关键字,第二个字符串(来自B列)作为值?

谢谢。

回答

9

初始化它作为空第一:

while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) 
{ 
    $languageArray[$row[0]] = $row[1]; 
} 

PHP阵列/散列没有固定的尺寸,并因此在各种可变的:

$languageArray = array(); 

然后,它使用单独的,而像这样的循环填充的方式,所以即使你将它们初始化为空,你也可以填充它们,但是你希望以后可以。

3

做它更传统:

$languageArray = array(); 
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) 
{ 
      $languageArray[$row[0]] = $row[1]; 
} 
2

首先创建数组:

$myArray = array(); 

然后添加一个键=>值绑定:

$myArray[$key] = $value; 

在你的情况,这应该是类似的(在循环中):

$myArray[$row[0]] = $row[1]; 
2

什么首先初始化一个空数组,稍后将与您的数据填充:

$languageArray = array(); 

然后,通过线CVS文件中的行会,使用各行把数据放入数组:

$handle = fopen("Languages.csv","r") or die("EPIC FAIL!"); 
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    // $row[0] is the first column, 
    // $row[1] is the second one. 
    $languageArray[$row[0]] = $row[1]; 
} 


你不能声明数组,用里面的代码是初始化:你有两个步骤行事。