2009-10-09 4 views
0

그냥 도움이 계층 적 배열을 복용 필요PHP : ...

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, 

를 배열을 수정 ... 그리고 당신은 볼의 Foreach을 사용할 수 있습니다

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

답변

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 - 귀하의 결과입니다!

+0

대단히 감사합니다. – EddyR

0

이 배열 형식을 일치하도록 수정 모든 노드 배열에서.

최종 배열을 반환하고 가장 가까운 레벨 노드를 찾는 재귀 함수를 만들어야합니다.