2010-11-30 28 views
1

が、私はこの変換すなわち、それらは前回の反復で追加されたサブ配列のサブ配列に要素を追加しようとしているサブ配列に要素を追加しますは、再帰的に

@aibsソリューションと同様に
$new_array = array(
    'a' => array(
     'b' => array(
      'c' => array() 
     ) 
    ) 
); 

答えて

3
$a = array('a', 'b', 'c'); 

$tmp = array_reverse($a); 

$new_array = array(); 
foreach ($tmp as $item) { $new_array = array($item => $new_array); } 
+0

最も簡単な方法。これは私のために働いた、ありがとう。 –

1
function makeArrayChain($chain) 
{ 
    $key = array_shift($chain); 

    if ($key === NULL) { 
     return array(); 
    } else { 
     return array($key => makeArrayChain($chain)); 
    } 
} 

var_dump(makeArrayChain(array('a', 'b', 'c')); 

array(1) { 
    ["a"]=> 
    array(1) { 
    ["b"]=> 
    array(1) { 
     ["c"]=> 
     array(0) { 
     } 
    } 
    } 
} 
1

<?php 

function splitIntoSubArray($array) { 
    return $array ? array(array_shift($array) => splitIntoSubArray($array)) : array(); 
} 

$a = array('a', 'b', 'c'); 

print_r(splitIntoSubArray($a)); 

出力:これまででそれを行うには

Array 
(
    [a] => Array 
     (
      [b] => Array 
       (
        [c] => Array 
         (
         ) 

       ) 

     ) 

)