Moin!
Mittlerweile habe ich mit preg_replace() anstelle von substr_count wohl wegen des unterschiedlichen Rückgabewertes (Dank an dedlfix!) eine bessere Lösung gefunden. Es funzt[TM] jetzt so wie beabsichtigt.
Naja, das, was du in den Strings suchst, sollte auch mit strpos() zu finden sein. Wenn es nicht vorkommt, ist (strpos(...)===false) wahr. Wenn es vorkommt, ist (strpos(...)!==false) wahr.
Und eine logische Reihenfolge kann man natürlich auch innerhalb der Suchfunktion herstellen, indem man gefundene Teilstrings in Werte übersetzt und die dann vergleicht, wie gezeigt.
// Schulleitung im String ergibt 2 "Punkte", sonst 0.
$p1ord = (strpos($person1['aufgaben'],"Schulleitung")===false?0:2);
$p2ord = (strpos($person2['aufgaben'],"Schulleitung")===false?0:2);
// "stellvertretende" im String ergibt 1 "Punkt"
$p1ord = (strpos($person1['aufgaben'],"stellvertretende")===false?0:1);
$p2ord = (strpos($person2['aufgaben'],"stellvertretende")===false?0:1);
if($p1ord != $p2ord)
{
return ($p1ord > $p2ord? -1 : 1);
)
> // Nachnamen vergleichen
> if($person1['nachname'] != $person2['nachname']) return strcmp(strtolower($person1['nachname']), strtolower($person2['nachname']));
> //Vornamen vergleichen
> if($person1['vorname'] != $person2['vorname']) return strcmp(strtolower($person1['vorname']), strtolower($person2['vorname']));
> // Anreden vergleichen
> if($person1['anrede'] != $person2['anrede']) return strcmp(strtolower($person1['anrede']), strtolower($person2['anrede']));
> return 0;
> }
- Sven Rautenberg
--
My sssignature, my preciousssss!
My sssignature, my preciousssss!