Hallo!
Ich brauch mal Eure Hilfe...
Bin totale Anfängerin und versteh noch nicht so viel von PHP...
Folgendes Problem:
Ich habe Ergebnisse einer Suche, die ich sortieren möchte.
Die Ergebnismenge ist eine Sammlung von Objekten (Literaturtitel)
Jedes Objekt besitzt viele Eigenschaften, nach denen ich sortieren möchte.
Die Sortierung muss auf PHP-Ebene stattfinden, nicht auf SQL-Ebene.
Ich wollte das eigentlich mit usort() lösen, doch bei leeren Einträgen werden die
Objekte dazwischen sortiert und nicht ans Ende. Schätze, mit der Vergleichsfunktion stimmt etwas nicht...
Ein Beispiel:
Meine Titel besitzen u.a. ein Erscheinungsjahr, aber eben nicht alle...
Der Code für die Vergleichsfunktion:
Der Aufruf:
... wobei ich den Code auch nicht verstehe und ihn aus dem Internet umgebastelt habe... ;-)
doch ohne Leereinträge funktioniert's schon.
Alles seltsam.
Habt Ihr eine Idee?
Liebe Grüße
Danni
Ich brauch mal Eure Hilfe...
Bin totale Anfängerin und versteh noch nicht so viel von PHP...
Folgendes Problem:
Ich habe Ergebnisse einer Suche, die ich sortieren möchte.
Die Ergebnismenge ist eine Sammlung von Objekten (Literaturtitel)
Jedes Objekt besitzt viele Eigenschaften, nach denen ich sortieren möchte.
Die Sortierung muss auf PHP-Ebene stattfinden, nicht auf SQL-Ebene.
Ich wollte das eigentlich mit usort() lösen, doch bei leeren Einträgen werden die
Objekte dazwischen sortiert und nicht ans Ende. Schätze, mit der Vergleichsfunktion stimmt etwas nicht...
Ein Beispiel:
Meine Titel besitzen u.a. ein Erscheinungsjahr, aber eben nicht alle...
Der Code für die Vergleichsfunktion:
PHP-Code:
function vergleicheErscheinungsjahrAsc($titel1, $titel2)
{
if ($titel1->erscheinungsjahr == $titel2->erscheinungsjahr)
{
return 0;
}
else if ($titel1->erscheinungsjahr == 0)
{
return 1;
}
else if ($titel1->erscheinungsjahr < $titel2->erscheinungsjahr)
{
return -1;
}
else
{
return 1;
}
}
PHP-Code:
$sortierung = "vergleicheErscheinungsjahrAsc"
usort($titel, $sortierung);
... wobei ich den Code auch nicht verstehe und ihn aus dem Internet umgebastelt habe... ;-)
doch ohne Leereinträge funktioniert's schon.
Alles seltsam.
Habt Ihr eine Idee?
Liebe Grüße
Danni
Kommentar