如何在While循环中初始化关联数组?
问题描述:
我现在正在做一个简单的事情,我要从一个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列)作为值?
谢谢。
答
初始化它作为空第一:
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$languageArray[$row[0]] = $row[1];
}
PHP阵列/散列没有固定的尺寸,并因此在各种可变的:
$languageArray = array();
然后,它使用单独的,而像这样的循环填充的方式,所以即使你将它们初始化为空,你也可以填充它们,但是你希望以后可以。
答
做它更传统:
$languageArray = array();
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$languageArray[$row[0]] = $row[1];
}
答
首先创建数组:
$myArray = array();
然后添加一个键=>值绑定:
$myArray[$key] = $value;
在你的情况,这应该是类似的(在循环中):
$myArray[$row[0]] = $row[1];
答
什么首先初始化一个空数组,稍后将与您的数据填充:
$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];
}
你不能声明数组,用里面的代码是初始化:你有两个步骤行事。