berlinsurfer: Nested Sets als Multidimensionales Array

Beitrag lesen

Hallo liebe Gemeinde,
habe folgendes (nicht ganz triviales) Problem:
ich habe eine Tabelle mittels modified preorder tress traversal (aka nested sets) und möchte diese gerne in ein multidimensionales array transformieren.
was ich habe:
1. query:

    $sql = "SELECT node.title, node.id as id, (COUNT(parent.id) - 1) AS depth  
        FROM #__jpay_plans AS node,  
        #__jpay_plans AS parent  
        WHERE node.lft BETWEEN parent.lft AND parent.rgt  
        GROUP BY node.id  
        ORDER BY node.lft";  

2. funktion:

  function nestify( &$arrs, $depth_key = 'depth' ) {  
    $nested = array();  
    $depths = array();  
  
    foreach( $arrs as $key => $arr ) {  
      if( $arr[$depth_key] == 0 ) {  
        $nested[$key] = $arr;  
        $depths[$arr[$depth_key] + 1] = $key;  
      } else {  
        $parent =& $nested;  
        for( $i = 1; $i <= ( $arr[$depth_key] ); $i++ ) {  
          $parent =& $parent[$depths[$i]];  
        }  
        $parent[$key] = $arr;  
        $depths[$arr[$depth_key] + 1] = $key;  
      }  
    }  
    return $nested;  
  }  

ich brauche das array jedoch folgendermaßen:
("node1",
"children" => array("node2", "children" => array("node3")));
etc. mir kommt es in diesem zusammenhang auf den key "children" an. kann mich da jemand auf die richtige spur bringen ?
vielen dank schon mals aus berlin !