2014-02-13 396 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