1

我正在寻找一种将 csv 行拆分为多维 php 数组的键的方法

a,b,c 变为

$some_array['a']['b']['c'] = true;

a,b,d,e 变为

$some_array['a']['b']['d']['e'] = true;
4

1 回答 1

4

也许是这样的?

<?php
$csv_inputstring =
"1,2,3
a,b,c
d,e,f";
$output = array();
foreach(explode("\n",$csv_inputstring) as $line){
   $values = str_getcsv($line);
   $tmp = &$output;
   foreach($values as $value){
      if (!is_array($tmp)){
          $tmp = array();
      }
      $tmp = &$tmp[$value];
   }
   $tmp = true;
}

print_r($output);

?>

本次测试的结果:

Array
(
    [1] => Array
        (
            [2] => Array
                (
                    [3] => 1
                )

        )

    [a] => Array
        (
            [b] => Array
                (
                    [c] => 1
                )

        )

    [d] => Array
        (
            [e] => Array
                (
                    [f] => 1
                )

        )

)
于 2013-10-13T20:57:42.630 回答