2010-03-05 6 views
1
function createJsonTree($array, $currentParent, $currLevel = 0, $prevLevel = -1) { 

foreach ($array as $categoryId => $category) { 

    if ($currentParent == $category['parent']) {  

    if ($currLevel > $prevLevel) $output .= ' , "children":[ '; 

    if ($currLevel == $prevLevel) $output .= " }, "; 

    $output .= '{ "data" :'.'"'.$category['menu_title'].'"'; 

    if ($currLevel > $prevLevel) { $prevLevel = $currLevel; } 

    $currLevel++; 

    $output .= self::createJsonTree($array, $category['id'], $currLevel, $prevLevel); 

    $currLevel--;  
    } 

} 

if ($currLevel == $prevLevel) $output .= " }] "; 
return $output; 
} 
+3

Вам нужно объяснить ваш вопрос более подробно. Публикация названия и стены кода не облегчает нам помощь. Что вы хотите сделать, что вам удалось сделать, что вы делаете сейчас, это отличается от того, что вы хотели бы сделать? – Marius

ответ

1

Вы можете создать дерево вроде этого:

function createTree() 
{ 
    $sql = "SELECT id, parent_id, title FROM category order by id "; 
    $filas = UtilConexion::$pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); 
    $arbol = '{"data":[{"attr":{"id":"000"},"data":"Nodo raíz","state":"open"' . 
    $this->createJsonTree($filas, null) . '}]}'; 
    return $arbol; 
} 
Смежные вопросы