我有多个数组,我想在for each循环的末尾为每个数组命名。
代码php代码:
<?php
$csv = array_map("str_getcsv", file("translations/dk.csv"));
foreach ($csv as $line){
if ($line[1] != NULL){
$line[0] = $line[1];
}
print_r($line[0]);
print_r("<br />");
}
fclose($csv);
?>
数组的示例。
Array ( [0] => Search and Save [1] => Søg og Spar på Hoteller )
Array ( [0] => Where are you going? [1] => Hvor skal du hen? )
现在,第[0]行的输出是每次foreach循环以不同的值自然运行时的输出。但我需要在每个循环中命名每个$line[0],以便以后可以访问它们。我该怎么做?
首先,不应该使用file()
来分割行;CSV记录可能跨越多行。
$f = fopen("translations/dk.csv", 'rt');
$csv = array();
while (($data = fgetcsv($f)) !== false) {
$csv[] = $data;
}
fclose($f);
其次,要从数组中选择第一列,可以使用array_column()
:
$results = array_column($csv, 0);
// "Search and Save", "Where are you going?"]
也许你正在寻找这样的东西:
<?php
$csv = array_map("str_getcsv", file("translations/dk.csv"));
$results = array();
foreach ($csv as $k => $line){
if ($line[1] != NULL){
$line[0] = $line[1];
$results[$k] = $line[0];
}
print_r($line[0]);
print_r("<br />");
}
print_r($results);
?>