Array umstrukturieren / umsortieren

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

  • Array umstrukturieren / umsortieren

    Hallo

    ich stehe gerade vor einem großen problem. ich möchte ein array, was ich aus meiner datenbankabfrage erhalten habe, komplett umstrukturieren bzw umsortieren.

    das eingangs-array ist folgendermaßen aufgebaut:
    Code:
    [0]=>
      array(3) {
        ["id"]=>
        string(1) "1"
        ["name"]=>
        string(8) "testcat1"
        ["parent_catid"]=>
        string(1) "0"
      }
      [1]=>
      array(3) {
        ["id"]=>
        string(1) "2"
        ["name"]=>
        string(8) "testcat2"
        ["parent_catid"]=>
        string(1) "1"
      }
      [2]=>
      array(3) {
        ["id"]=>
        string(1) "3"
        ["name"]=>
        string(8) "testcat3"
        ["parent_catid"]=>
        string(1) "0"
      }
      [3]=>
      array(3) {
        ["id"]=>
        string(1) "4"
        ["name"]=>
        string(8) "textcat4"
        ["parent_catid"]=>
        string(1) "2"
      }
      [4]=>
      array(3) {
        ["id"]=>
        string(1) "5"
        ["name"]=>
        string(8) "testcat5"
        ["parent_catid"]=>
        string(1) "1"
      }
      [5]=>
      array(3) {
        ["id"]=>
        string(1) "6"
        ["name"]=>
        string(8) "testcat6"
        ["parent_catid"]=>
        string(1) "3"
      }
      [6]=>
      array(3) {
        ["id"]=>
        string(1) "7"
        ["name"]=>
        string(8) "testcat7"
        ["parent_catid"]=>
        string(1) "1"
      }
      [7]=>
      array(3) {
        ["id"]=>
        string(1) "8"
        ["name"]=>
        string(8) "testcat8"
        ["parent_catid"]=>
        string(1) "1"
      }
    }
    als ausgang sollte ein array mit folgendem schema entstehen:
    Code:
     [0]=>
      array(3) {
        ["id"]=>
        string(1) "1"
        ["name"]=>
        string(8) "testcat1"
        ["parent_catid"]=>
        string(1) "0"
      }
      [1]=>
      array(3) {
        ["id"]=>
        string(1) "2"
        ["name"]=>
        string(8) "testcat2"
        ["parent_catid"]=>
        string(1) "1"
      }
      [2]=>
      array(3) {
        ["id"]=>
        string(1) "4"
        ["name"]=>
        string(8) "textcat4"
        ["parent_catid"]=>
        string(1) "2"
      }
      [3]=>
      array(3) {
        ["id"]=>
        string(1) "5"
        ["name"]=>
        string(8) "testcat5"
        ["parent_catid"]=>
        string(1) "1"
      }
      [4]=>
      array(3) {
        ["id"]=>
        string(1) "7"
        ["name"]=>
        string(8) "testcat7"
        ["parent_catid"]=>
        string(1) "1"
      }
      [5]=>
      array(3) {
        ["id"]=>
        string(1) "8"
        ["name"]=>
        string(8) "testcat8"
        ["parent_catid"]=>
        string(1) "1"
      }
    
    ... usw

    das ist mit folgendem code entstanden
    PHP-Code:
    ...
    foreach (
    $cats as $cat) {
        if (
    $newcats) {
          foreach (
    $newcats as $newcat) {
            if(
    $cat['parent_catid']==$newcat['id']) $newcats[]=$cat;
          }
        }
        elseif(
    $cat['parent_catid']==0$newcats[]=$cat;
      }
    ... 
    ansich macht das script schon alles richtig, aber nach dem letzten eintrag, wo 'parent_catid' = 1 ist, sollte danach wieder ein stück array kommen mit 'parent_catid' = 0 und darauf die elemente, die , die 'parent_catid' = id des vorangenagenen elements mit 'parent_catid' = 0 haben usw... und das schaff ich irgendwie nicht..

    es soll also eine strukturierung n-ten grades entstehen...

    hab schon 12h an dem problem gesessen, aber bin zu keiner lösung gekommen. könnt ihr mir helfen? gibts probleme beim verstehen meines problems?

    mfg
    obstler

  • #2
    hört sich irgendwie nach nested set an.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      ich vermute mal, dass du mit nested sets arbeiten möchtests. google mal danach, vielleicht ist es das, was du suchst.

      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        dankeschön erstmal für die antworten MelloPie und Kropff

        von Nested Sets hab ich noch nie etwas gehört, aber ich werd mir mal was anschauen.

        lg


        EDIT: also ich muss sagen, dass das nested-set modell echt ne sehr feine sache ist... und auch erheblich schneller als meine methode. da weiß ich jetzt, was ich zu tun hab ;D
        Zuletzt geändert von Obstler; 21.10.2008, 12:54.

        Kommentar

        Lädt...
        X