foreach gruppieren

  • hi,
    wie kann ich mein array aus meiner db nach einer value (country) aus diesem array sortieren und jeder gruppe eine überschrift geben?
    wäre super wenn ihr mir helfen könnt...

    gruß
    guuls

  • so soieht bis jetzt meine foreach schleife aus:


    und meine db abfrage:

    PHP
    $SQL = "SELECT * FROM retailers WHERE pickup='1' ORDER BY Country, Title ASC";
        $locations_array = $my_db->QueryAllRecords($SQL);

    das ganze gibt mir eine liste sortiert nach country und dann title aus... jetzt möchte ich aber eine liste haben die wie folgt aussieht

    HTML
    <ul>
          <li>Germany
               <ul>
                    <li>
                        Titel usw...
                   </li>
              </ul>
         </li>
    </ul>
  • Nutze statt der Kurzschreibweise die lange Form.

    PHP
    <?= $i ?>          // unsauber
    <?php echo $i; ?>  // besser


    Der Grund ist einfach, solltest du den Server oder Hoster wechseln, und dieses Feature ist nicht eingeschaltet, hast du bestimmt vergessen wo du überall die Änderungen vornehmen darfst. Auch bei einem Update von PHP auf die nöchste Version kann es passieren dass das Feature mal raus fliegt und dann steht du dumm da.

    Anstatt

    PHP
    SELECT * FROM

    solltest du immer alle Felder die ausgegeben werden sollen, aufführen, dass ist einfach guter Stil.

    Anstatt hier

    PHP
    $locations_array = $my_db->QueryAllRecords($SQL);

    den Umweg über das Array zu nehmen kannst du auch gleich die Liste erstellen.
    Deine Suche dazu, auch zum von dir gesuchten Feature, nennt sich Gruppenwechsel. Google mal danach.

  • Nutze statt der Kurzschreibweise die lange Form.

    Der Grund ist einfach, solltest du den Server oder Hoster wechseln, und dieses Feature ist nicht eingeschaltet, hast du bestimmt vergessen wo du überall die Änderungen vornehmen darfst. Auch bei einem Update von PHP auf die nöchste Version kann es passieren dass das Feature mal raus fliegt und dann steht du dumm da.

    Das stimmt so nur für den short-tag <?. Das short-echo <?= ist ab PHP Version 5.4 auch verfügbar wenn short_open_tags disabled sind.