2012-02-08 129 views
-1

Hy,動態構建陣列

我有一個很大的問題。 我有這樣的一個陣列$array[0] = 12, $array[1] = 20, $array[2] = 18和基於這個數組我想給這個數組$array_go[12][20][18] = $value一個值,因爲我建立一個遞歸函數來創建一個有很多子陣列的多維數組。

非常感謝。

P.S. : Is it more simple if I have a $variable = '[12][15][20]'; and somehow to create $array{$variable} = value ; because i can't seem how to do it ?

+0

不幸的是你,答案的質量將是成正比的問題的質量。 – 2012-02-08 10:01:22

+1

@ pufos完全不需要褻瀆。你未經編輯的問題對我來說也很難遵循,因爲代碼示例使我從氣味中脫身。 – 2012-02-08 10:10:06

+0

我知道,但在問題結束時,我再次提到真正的問題是什麼。結果我編輯了問題並刪除了不需要的部分。 :| – pufos 2012-02-08 10:11:35

回答

1

說實話,我真的不能跟你在問什麼,因爲我覺得有很多不需要的信息模糊你的實際問題。

對於初學者來說,你可以試試下面的代碼:

function helper(&$array, $path, $value) { 
    $parent =& $array; 
    foreach ($path as $entry) { 
    if (!isset($parent[$entry])) { 
     $parent[$entry] = array(); 
    } 

    $parent =& $parent[$entry]; 
    } 

    $parent = $value; 
    // make this $parent[] if more than 
    // one $value will be added to the same path 
} 

$array_go = array(); // or use some other array you already have 
helper($array_go, array(12, 20, 18), 1); 
helper($array_go, array(12, 15, 20), 2); 
helper($array_go, array(12, 10, 22), 3); 

print_r($array_go); 


/* 
Array 
(
    [12] => Array 
     (
      [20] => Array 
       (
        [18] => 1 
       ) 

      [15] => Array 
       (
        [20] => 2 
       ) 

      [10] => Array 
       (
        [22] => 3 
       ) 

     ) 

) 
*/ 
+0

這正是我想要的......對於我給出的那種曖昧的解釋感到抱歉。我刪除它。 – pufos 2012-02-08 10:05:35

+0

如果我有一個$ variable ='[12] [15] [20]'並以某種方式創建$ array {$ variable} = value;因爲我看起來似乎無法做到這一點 – pufos 2012-02-08 10:08:46

+0

@pufos您必須編寫'$ variable = array(12,15,20)',然後您可以將它作爲第二個參數傳遞給輔助函數。 – Yoshi 2012-02-08 10:13:40