csv文件进入数组,翻译系统为一个站点

时间:2011-12-16 17:53:41

标签: php arrays csv

我需要帮助来解决这个问题:

我有一个像这样的csv文件

您好,侨
再见,arrivederci

正如您所见,我尝试为网站创建翻译系统 现在我想把这个csv文件放到一个数组中,结果数组必须和$ langArray相同

<?php $langArray = array([it]=>array([hello]=>ciao,[goodbye]=>arrivederci)); ?>

我已经有一个使用Json文件的解决方案来拥有这样的数组,并且最有用的是csv文件和我也可以使用javascript的翻译系统。但我想知道用csv文件做到这一点的方法谢谢

3 个答案:

答案 0 :(得分:3)

要阅读CSV文件,您应使用fopenfgetcsv,或使用简短版str_getcsv(需要当前的PHP或compat库):

 $csv = array_map("str_getcsv", file("it.csv"));

然后构建关联映射需要手动循环:

 foreach ($csv as $line)
     $translate["it"][ $line[0] ] = $line[1];

答案 1 :(得分:0)

您可以使用explode为新行分割一次数据,然后为逗号分割一次,并用数据填充数组。

<?php
    $translations = array();
    $data = 'hello,ciao
        goodbye,arrivederci';
    $words = explode("\n", $data);
    foreach($words as $w) {
        $parts = explode(',', $w);
        $translations[$parts[0]] = $parts[1];
    }
    print_r($translations);
?>

http://codepad.viper-7.com/gCKoI9

答案 2 :(得分:0)

<?php

$languageArray = ARRAY();

$my_csv_it = 'hello,ciao goodbye,arrivederci';

$tmp_array_it = explode(' ', $my_csv_it);


foreach ($tmp_array_it AS $text) {
  $pairs = explode(',',$text);
  $languageArray['it'][$pairs[0]] = $pairs[1];
}

print_r ($languageArray);

?>