文件:将两列转换为类似格式的php数组

时间:2014-05-20 19:17:09

标签: arrays excel output

请参阅:http://www.geonames.org/export/codes.html

我将这些数据放在两列的Excel文件中。 Column A具有功能代码,Column B有简要说明。

我d'像一个数组:

 $listOfFeatures = array( 'ADM1'=>'first-order administrative division','ADM1H' => 'historical first-order administrative division');

我想也许一个Excel宏可以做到这一点 - 输出到一些.CSV文件。输出不必看起来像php数组。但是我可以很容易地调整它以使其工作。

有什么想法吗? 感谢。

使用$csv = array_map('str_getcsv', file('feature_code_abbrv.csv'));

更新

per http://www.php.net/manual/en/function.str-getcsv.php我想我越来越近了:

array(668) { [0]=> array(2) { [0]=> string(4) "ADM1" [1]=> string(36) " first-order    administrative division" }

但不确定这个数组我是否可以用来填充下拉框?

1 个答案:

答案 0 :(得分:0)

以下是我最终从Excel文件的两列获取关联数组的方法;我只需要一次这个数组,所以值得一些手动工作。

1)将仅包含两个required-columns的Excel文件保存到.CSV文件中。 2)针对.CSV文件运行以下代码

    function makecsv() {
      return array_map('str_getcsv', file('feature_code_abbrv.csv'));
    }
    $listOfFeaturesGeoNames = array();
    $listOfFeaturesGeoNames = makecsv();
    $outputlist = "outputlistfinal = array(' '=>'None',";
    foreach ($listOfFeaturesGeoNames as $element) {
      $outputlist.="'$element[0]' =>'". $element[1] . '\','; 
    }

上面的代码仍然产生了一个关联数组,只需要手动按摩一点点。之后,将该数组的var_dump输出分配给php数组并加载到我的表单中以填充下拉列表。工作得很好!

希望这有助于某人。