2009-10-09 111 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, 

...并修改它以匹配该阵列格式

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 2009-10-09 07:41:07

0

可以使用的foreach看在每个节点阵列上。

您应该创建一个递归函数,返回最终数组并查看最接近的级别节点。