我现在正在做一件简单的事情,我将从CSV文件中读取,列A包含诸如“EN”之类的代码,列B包含特定名称“英语”等等,我想阅读他们进入一个关联数组。
我目前的做法是这样的:
$handle = fopen("Languages.csv","r") or die("EPIC FAIL!");
$languageArray = array(
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$row[0] => $row[1],
}
)
但实际上它抱怨我的语法,所以我只是想知道是否有办法通过获取我的csv文件的所有行来初始化我的关联数组,并将第一个字符串(来自列A)作为键,第二个字符串(来自B列)作为值?
感谢。
答案 0 :(得分:10)
首先将其初始化为空:
$languageArray = array();
然后使用单独的while循环填充它:
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$languageArray[$row[0]] = $row[1];
}
PHP数组/哈希没有固定的大小,因此可以通过各种方式进行修改,因此即使将它们初始化为空,也可以随后填充它们。
答案 1 :(得分:3)
更常规地做:
$languageArray = array();
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$languageArray[$row[0]] = $row[1];
}
答案 2 :(得分:2)
首先创建数组:
$myArray = array();
然后添加一个键=>价值约束:
$myArray[$key] = $value;
在你的情况下,这应该是(在循环中):
$myArray[$row[0]] = $row[1];
答案 3 :(得分: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];
}
你不能使用初始化中的代码来声明一个数组:你必须分两步完成。