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

问题描述 投票:0回答:1

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

我将这些数据保存在 Excel 文件中,分为两列。

Column A
有特征代码,而
Column B
有其简要描述。

我想要一个像这样的数组:

 $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" }

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

php arrays excel output
1个回答
0
投票

以下是我最终如何从 Excel 文件的两列中获取关联数组;我只需要该数组一次,因此值得在其中进行一些手动工作。

1) 将仅包含所需两列的 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 数组并加载到我的表单中以填充下拉列表。工作得很好!

希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.