Mako: PHP MySql, Gleiche Name Gruppieren

Hallo Leute

Ich habe folgendes Problem.
ich habe eine Funktion die ein String zurück gibt.
Name, Bezeichnung, Kommentar

Die Funktion ist in einer Foreach Schleife

Die Ausgabe Lautet z.B
Mirko, Nr15, ...
Mirko, Nr16, ...
Anita, Nr22, ...

Jetzt möchte ich das meine Ausgabe so aussieht
Mirko, Nr15, ...
       Nr16, ...
Anita, Nr22, ...

Wie kann ich dies in der Funktion erledigen?
Ich kenne es nur direkt im Forach, das Problem ist ich kann dies nicht direkt im Foreach erledigen, dehalb suche ich eine Lösung die ich trotzdem in der Funktion erledige.

Jede Zeile ist neu, also kann ich ja nicht überprüfen obs den Namen schon einmal gibt.

Freue mich auch Vorschläge
Gruss Mako

  1. Lieber Mako,

    Deine Problembeschreibung ist ein wenig geheimniskrämerisch. Der von Dir gewählte Themenbereich lautet "PHP", in Deinem Threadtitel schmeißt Du gleich noch MySQL mit dazu... dabei scheint mir das Grundproblem zunächst eines von HTML zu sein.

    Die Ausgabe Lautet z.B
    Mirko, Nr15, ...
    Mirko, Nr16, ...
    Anita, Nr22, ...

    Jetzt möchte ich das meine Ausgabe so aussieht
    Mirko, Nr15, ...
           Nr16, ...
    Anita, Nr22, ...

    Wie hättest Du denn gerne das Markup dazu? Eine Tabelle, eine Definitionsliste oder ist das eine reine Textausgabe, bei der anstelle des zweiten "Mirko, " einfach passend viele Leerzeichen stehen sollen?

    Gut. Schauen wir uns die PHP-Seite an. Ich mache das immer so, dass ich ein assoziatives Array nutze, indem die Schlüssel die Namen tragen, und deren Werte wieder ein Array mit den jeweiligen Eintragungen ist.

    Beispiel:

    $daten = array(  
        'Mirko' => array(  
            'Nr15' => '...',  
            'Nr16' => '...'  
        ),  
        'Anita' => array(  
            'Nr22' => '...'  
        )  
    );
    

    Wenn die "Nr15"-artigen Strings in der Schleife erst mit dem "Nr" versehen werden, ansonsten aber reine Integer-Werte sind, kann das Ganze alternativ auch so aussehen:

    $daten = array(  
        'Mirko' => array(  
            15 => '...',  
            16 => '...'  
        ),  
        'Anita' => array(  
            22 => '...'  
        )  
    );
    

    Diese Array-Struktur kannst Du nun mit einer geschachtelten Schleife ausgeben:

    foreach ($daten as $name => $eintragungen) {  
        // Namen ausgeben  
      
        foreach ($eintragungen as $nr => $bemerkung) {  
            // Eintragungen ausgeben  
        }  
    }
    

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Hi,

    Jetzt möchte ich das meine Ausgabe so aussieht
    Mirko, Nr15, ...
           Nr16, ...
    Anita, Nr22, ...

    Stichwort: Gruppenwechsel/Gruppenbruch.

    Jede Zeile ist neu, also kann ich ja nicht überprüfen obs den Namen schon einmal gibt.

    Du musst die Daten natürlich vorher nach den Namen sortieren lassen.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?