2010-09-27 59 views
3

我有一个数组作为PHP转换的一个维数组多维

$tmpArr = array('A', 'B', 'C'); 

我要处理这个数组,并希望新的数组作为

$tmpArr[A][B][C] = C 

即最后一个元素成为最后一个数组的值。

任何人都可以提出解决方案吗?请帮忙。在此先感谢

+0

这种没有意义 – Thariama 2010-09-27 13:10:14

+0

ID on't认为这也是有意义的,但如果你不能提供帮助,请提供更多的信息 - 输入inrray有多少少于三个元素?你到现在为止尝试过什么?为什么你必须进行这种转换,而不能像创建数组时那样去做? – oezi 2010-09-27 13:14:50

回答

8

迭代键阵列,并使用reference为链端:

$arr = array(); 
$ref = &$arr; 
foreach ($tmpArr as $key) { 
    $ref[$key] = array(); 
    $ref = &$ref[$key]; 
} 
$ref = $key; 
$tmpArr = $arr; 
+0

你打败了我。我有几乎完全相同的东西(唯一的区别是变量名称)... +1 – ircmaxell 2010-09-27 13:24:56

2
$tmpArr[$tmpArr[0]][$tmpArr[1]][$tmpArr[2]] = $tmpArr[2]; 

这就是你想要的?

+0

是的,确切地说。但我希望它动态I.e元素的数量不固定。它可能有所不同。 – Nilesh 2010-09-27 13:20:20

8
$tmpArr = array('A', 'B', 'C'); 
$array = array(); 
foreach (array_reverse($tmpArr) as $arr) 
     $array = array($arr => $array); 

输出:

Array 
(
    [A] => Array 
     (
      [B] => Array 
       (
        [C] => Array 
         (
         ) 

       ) 

     ) 

)