动态构造数组

时间:2012-02-08 09:50:48

标签: php

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 ?

1 个答案:

答案 0 :(得分: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
                )

        )

)
*/