Vorrei creare un array multidimensionale da un array. Per esempio vorreiCreare array multidimensionale da un array in PHP
$test = array (
0 => 'Tree',
1 => 'Trunk',
2 => 'Branch',
3 => 'Limb',
4 => 'Apple',
5 => 'Seed'
);
per diventare
$test =
array (
'Tree' => array (
'Trunk' => array (
'Branch' => array (
'Limb' => array (
'Apple' => array (
'Seed' => array()
)
)
)
)
)
);
o più semplicemente
$result[Tree][Trunk][Branch][Limb][Apple][Seed] = null;
che sto cercando di fare questo con una funzione ricorsiva ma sto colpendo limite di memoria in modo Sto chiaramente sbagliando.
<?php
$test = array (
0 => 'Tree',
1 => 'Trunk',
2 => 'Branch',
3 => 'Limb',
4 => 'Apple',
5 => 'Seed'
);
print_r($test);
print "results of function";
print_r(buildArray($test));
function buildArray (&$array, &$build = null)
{
if (count($array) > 0)
{
//create an array, pass the array to itself removing the first value
$temp = array_values($array);
unset ($temp[0]);
$build[$array[0]] = $temp;
buildArray($build,$temp);
return $build;
}
return $build;
}
Questo è un buon esempio del perché ricorsione non è necessariamente una buona idea la maggior parte del tempo.In genere è molto semplice svolgersi in ricorsione e, in tal modo, si ottiene un codice in genere più veloce, meno ingombrante e più facile da capire. –