为每个循环命名数组中的每一行

时间:2015-03-03 23:12:50

标签: php arrays

我有多个数组,我想在每个循环的末尾命名每个数组。

代码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? ) 

现在,每次foreach循环以不同的值自然运行时,[0]行的输出。但我需要在每个循环上命名每个$ line [0],以便我可以在之后访问它们。我该怎么做?

2 个答案:

答案 0 :(得分:0)

也许你正在寻找这样的东西:

<?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);
?>

答案 1 :(得分: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?"]