2009-10-09 6 views
0

juste besoin d'aide pour prendre ce tableau hiérarchique ...PHP: modification d'un tableau

Array (
     [root] => Array ([attr] => Array ([id] => 1) [label] => Array ([value] => My Root) 
      [node] => Array (
      [0] => Array ([attr] => Array([id] => 2) [label] => Array([value] => Category 1) 
       [node] => Array(
        [0] => Array ([attr] => Array ([id] => 14) [label] => Array ([value] => Sub-Category 1)) 
        [1] => Array([attr] => Array ([id] => 15) [label] => Array([value] => Sub-Category2)) 
etc, etc, 

... et la modifier pour correspondre à ce format de tableau

Array (
    [Category 1] => Array(
     [14] => Sub-Category 1 
     [15] => Sub-Category 2 
    ) 
) 

Répondre

2
$newArray = array(); 
foreach ($array['root']['node'] as $node) 
{ 
    $newArray[ $node['value'] ] = array(); 

    foreach ($node['node'] as $nestedNode) 
    $newArray[ $node['value'] ][ $nestedNode['attr']['id'] ] = $nestedNode['label']['value']; 
} 

$ newArray - est votre résultat!

+0

Merci beaucoup! – EddyR

0

Vous pouvez utiliser foreach pour voir à chaque tableau de nœuds.

Vous devez créer une fonction récursive qui retourne le tableau final et regarde dans le nœud de niveau le plus proche.