2012-02-08 22 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

残念ながらあなたのためには、回答の質は、質問の品質に直接比例するとしています。 –

+1

@pufos冒涜にはまったく必要ありません。あなたの編集されていない質問は、コード例が私を香りから捨ててしまったので、私にとっても難しかった。 –

+0

私はそれを知っていますが、質問の終わりに私は本当の問題が何かを正確に改めて言いました。その結果、私は質問を編集し、不要な部分を削除しました。 :| – pufos

答えて

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

+0

私は$ variable = '[12] [15] [20]'と何らかの形で$ array {$ variable} = valueを作成するのは簡単です。なぜなら私はそれを行う方法に見えないからです。 – pufos

+0

@pufos '$ variable = array(12、15、20)'を書かなければなりません。そして、ヘルパー関数の2番目のパラメータとして渡せます。 – Yoshi