Array sortieren und als hirarchische liste ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array sortieren und als hirarchische liste ausgeben

    Habe ein etwas für mich komplizierten Fall wo ich nicht weiß wie ich es angehen kann.

    Ausgangsdaten:
    Code:
    Array ( 
    
    [0] => Array ( [categoryId] => 1 [parentId] => 0 [description] => Allgemein [categoryDescription] => [categoryName] => Allgemein [htmlUrl] => http://www.xxx.com/category/allgemein/ [rssUrl] => http://www.xxx.com/category/allgemein/feed/ ) 
    
    [1] => Array ( [categoryId] => 24 [parentId] => 18 [description] => Autokredit [categoryDescription] => [categoryName] => Autokredit [htmlUrl] => http://www.xxx.com/category/kredite/autokredit/ [rssUrl] => http://www.xxx.com/category/kredite/autokredit/feed/ ) 
    
    [2] => Array ( [categoryId] => 5 [parentId] => 4 [description] => Autoversicherung [categoryDescription] => [categoryName] => Autoversicherung [htmlUrl] => http://www.xxx.com/category/versicherungen/autoversicherung/ [rssUrl] => http://xxx.com/category/versicherungen/autoversicherung/feed/ )  
    
    [12] => Array ( [categoryId] => 18 [parentId] => 0 [description] => Kredite [categoryDescription] => [categoryName] => Kredite [htmlUrl] => http://www.xxx.com/category/kredite/ [rssUrl] => http://www.xxx.com/category/kredite/feed/ ) 
    
    ....
    )
    Jetzt ist mein Ziel eine sortierte Checkboxliste auszugeben.
    Die Schwierigkeit für mich ist es das ich zuerst die Hauptkategorien (parentId = 0) zusammenstellen muss und dann die Subkategorien (z.B. parentId = 18 ist die Kategorie mit der categorieID = 18)

    Also so wie hier:
    - Kredite (categoryID 18) -> Hauptkategorie Array[12]
    -- Autokredit (categoryID 24, parentId 18) -> Subkategorie Array[1]
    ...

    Wie könnte ich das am besten lösen?
    Zuletzt geändert von AKraisser; 08.03.2012, 15:43.

  • #2
    Habs jetzt hinbekommen mit zwei foreach Schleifen.

    PHP-Code:
    foreach($categories as $category) { 
        if ( 
    $category['parentId'] == ) {
            echo 
    $category['categoryId'] . ' | ' $category['categoryName'] . '<br />';
            foreach(
    $categories as $subcategory) {
                if ( 
    $category['categoryId'] == $subcategory['parentId'] ) {
                    echo 
    '-' $subcategory['parentId'] . ' | ' $subcategory['categoryId'] . ' | ' .  $subcategory['categoryName'] . '<br />';
                }
            }
        }

    Hoffe das ist eine saubere Lösung.

    Kommentar

    Lädt...
    X