2014-02-13 203 views
0

我希望标题不是太糟糕。我不是英语的人,这甚至是难以用一个sentece在我mothertounge ...php从不同的阵列键创建数组(尺寸/路径)

我的问题是follwing:

Iwant从字符串构建一个多维数组,像这样:

$string = "a-b-c"; 
$val = "something"; 

$array['a']['b']['c'] = $val; 

我尝试了一些我的想法,并最终以炸脑... 希望你能帮助我!谢谢!

编辑 我的方法:

function recursion($c, $p, $v) { 
     if (gettype($c) !== "array") $c = array(); 
     $c[$p] = $v; 
     return $c; 
    } 

    foreach ($conf as $confLine) { 
     $params = preg_split('/-/', $confLine->getParam()); //Here comes "a-b-c" 
     $val = $confLine->getValue(); // The value 

     for ($i = 0; $i < count($params); $i++) { 
      $galleryConfig = recursion($galleryConfig, $params[$i], $val); 
     } 
    } 

重要 不知刺痛有多长。如果其A-B或A-B-C-d-E-F

+0

请发表你的想法,你试过。 – Pietu1998

+1

'爆炸()' - 将是一个开始 – 2014-02-13 19:31:12

+1

如果你不介意我问,为什么你需要这样做? – SamV

回答

6
$string = "a-b-c"; 
$val = "something"; 

foreach (array_reverse(explode('-', $string)) as $key) { 
    $val = array($key => $val); 
} 

$array = array_reduce(
    array_reverse(explode('-', $string)), 
    function ($val, $key) { return array($key => $val); }, 
    $val 
); 
+0

不错的一个。这比一见钟情有点棘手。你打了我一分钟。 :) – winkbrace

+0

不错的功能()我正在寻找这样的东西。我希望它适合我的程序! – Martin