mehrere mehrdimensionale arrays untereinander vergleichen

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

  • mehrere mehrdimensionale arrays untereinander vergleichen

    hallo,

    ich bastle gerade an einen vorlesungsverzeichnis
    es gibt drei arrays (die daten kommen aus einer datenbank, zur vereinfachung mit arrays dargestellt) mit daten zu Semester, Kategorie, Thema.

    In einen semester gibt es kategorien, in kategorien gibt es themen, ich möchte die zugehörigkeiten darstellen ... siehe AUSGABE

    gleich mal vorab: das system funktioniert (endlich), ich möchte nur wissen ob es vieleicht eine funktion gibt die mir die verschachtelung der for schleifen erspart.

    PHP-Code:
    $sem_array[] = array('sem_id' => '1''name' => 'semester1');
    $sem_array[] = array('sem_id' => '8''name' => 'semester8');
    $sem_array[] = array('sem_id' => '9''name' => 'semester9');

    $kat_array[] = array('sem_id' => '1''kat_id' => '1''name' => 'kategorie1_1');
    $kat_array[] = array('sem_id' => '8''kat_id' => '2''name' => 'kategorie1_8');
    $kat_array[] = array('sem_id' => '9''kat_id' => '4''name' => 'kategorie1_9');

    $top_array[] = array('sem_id' => '1''kat_id' => '1''top_id' => '1''name' => 'topic1_1_1');
    $top_array[] = array('sem_id' => '8''kat_id' => '2''top_id' => '2''name' => 'topic1_8_1');
    $top_array[] = array('sem_id' => '9''kat_id' => '4''top_id' => '3''name' => 'topic1_9_1');
    $top_array[] = array('sem_id' => '9''kat_id' => '4''top_id' => '4''name' => 'topic1_9_2');

    for (
    $s=0$s<=sizeof($sem_array); $s++)
    {
            for (
    $k=0$k<=sizeof($kat_array); $k++)
            {
                if (
    $sem_array[$s][sem_id] == $kat_array[$k][sem_id])
                {
                    for (
    $t=0$t<=sizeof($top_array); $t++)
                    {
                            if (
    $kat_array[$k][kat_id] == $top_array[$t][kat_id])
                            {
                                    echo 
    $sem_array[$s]['name'].$kat_array[$k]['name'].$top_array[$t]['name'].'<br>';
                            }
    //end if $kat_array[$k][kat_id] == $top_array[$t][kat_id]
                    
    }// end for top_array
                
    }//end if $sem_array[$s][sem_id] == $kat_array[$k][sem_id]
            
    }// end for kat_array
    }// end for sem_array 
    AUSGABE:

    semester1kategorie1_1topic1_1_1
    semester8kategorie1_8topic1_8_1
    semester9kategorie1_9topic1_9_1
    semester9kategorie1_9topic1_9_2

    ein mysql query in einer for schleife ist weniger zu empfehlen oder ?
    meine versuche mit while und foreach waren nicht erfolgreich

    hoffe mich einigermaßen klar ausgedrückt zu haben

    info: im endeffekt wird dann die echo ausgabe um ein listenfeld <option value= ... > erweitert um den namen eines themas (topic) auszuwählen und zu ändern (ein topic-name kann in verschiedenen semestern und somit in verschiedenen kategorien vorhanden sein)
    lg
    hi0b

  • #2
    du kannst das doch schön mit nur einer query in der DB machen. muss halt JOIN nehmen und ab die post ....

    ... ich gehe auch mal davon aus, dass du bereits deine tabellen korrekt normalisiert hast. oder?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Original geschrieben von Abraxax

      ... ich gehe auch mal davon aus, dass du bereits deine tabellen korrekt normalisiert hast. oder?
      ähhh, tabellen normalisieren ??? ...
      optimize kenn ich ...
      über JOIN werd ich mich mal schlau machen

      dann werd ich mich mal über das mysql manual stürzen

      ... thx für die prompte antwort

      Kommentar


      • #4
        Such mal in Googel nach 3. Normalform, da findest bestimmt was
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          Die fünf Normalformen ... das ist mir schon mal untergekommen ...


          bin schon am lesen

          DSP

          thx

          Kommentar


          • #6
            kannte nur 3 *schämm*, kein Wunder, dass die Schüler hier so schlecht abschneiden, wenn einem nur die Hälfte beigebracht wird
            Für Rechtschreibfehler übernehme ich keine Haftung!

            Kommentar


            • #7
              :OT

              eine frage zu den normalformen:

              wenn ich aus $top_array den schlüssel 'sem_id' entferne
              (Datenbankmäßig also aus der tabelle top die spalte `sem_id`entferne (ist ja eigentl. auch überflüssig))
              dann ist die 3. Normalform erreicht oder

              jetzt lass ich mich noch von JOIN verwirren und schon sollte das ganze optimal funzen

              dankeschön jetzt komm ich weiter
              Zuletzt geändert von hi0b; 27.04.2004, 16:22.

              Kommentar

              Lädt...
              X