2010-12-09 11 views
0

Ich zeige einige Daten in PHP an und ich suche nach Logik, um nach doppelten Werten, aber nur nach sequentiellen doppelten Werten zu suchen.PHP, um nach doppelten sequentiellen Werten zu suchen

Zum Beispiel gerade jetzt habe ich dies zeigt eine Liste von Musik up spielte bei einem Konzert:

Beethoven Neunte Sinfonie
- Teil 1

Beethoven Neunte Sinfonie
- Teil 2

Mahler Symphony
- Teil 1

Beethoven Ninth Symphony - Teil 4

Stattdessen möchte ich es so lesen - damit ich den Titel nicht wiederhole, WENN es mit dem Titel des vorherigen Artikels übereinstimmt. Aber wenn es nicht das gleiche wie das vorherige Element ist, wird der Titel erneut angezeigt.

Beethoven Neunte Sinfonie
- Teil 1
- Teil 2

Mahler Symphony
- Teil 1

Beethoven Neunte Sinfonie
- Teil 4

Vielen Dank für jede Hilfe!

+0

Wie sind die Daten strukturiert? Ist es ein Array? Ein Objekt? Kommt es aus einer Datenbank? Wenn ja, wie sieht die db-Tabellenstruktur aus? – Gordon

+3

Das ist eine schlechte Frage, wir wissen nicht einmal, wie die Daten gespeichert sind, ist es Datenbank, Array? – RobertPitt

Antwort

0

Angenommen, Sie haben eine Liste von Symphony-Objekten, $ musicList. Jeder Artikel hat Titel- und Teilenummereigenschaften.

$previousTitle = 0; 
foreach ($musicList as $item) { 
    if ($item->title != $previousTitle) { 
    print $item->title; 
    } 
    print "- " . $item->partNumber; 

    $previousTitle = $item->title; 
} 
0

Sie müssen nur das letzte Konzert Namen speichern Sie in irgendeiner Variable gedruckt, so dass Sie es mit dem aktuellen Konzertname vergleichen können, wie Sie jeden ausdrucken. Wenn sie gleich sind, drucken Sie nichts, wenn nicht, aktualisieren Sie die Variable und drucken Sie den neuen Namen.

while ($row = mysql_fetch_array($result_resource)) { 

    if (!isset($last) || $last != $row['concert_name']) { 
     $last = $row['concert_name']; 
     echo "<h1>" . $row['concert_name'] . "</h1>"; 
    } 
    echo $row['song_name'] . "<br />"; 

}