Jump to content

PHP Sortierfunktionen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Leute

 

Ich habe hier folgendes Script:

 

for ($i=0; $i<$anzahl; $i++)

{

echo '<tr>';

echo '<td width=150>' . $ergebnis[$i]['displayname'] . '</td>';

 

if (empty($ergebnis[$i]['department']))

echo '<td width=150> </td>';

else /*Breite vom Feld*/

echo '<td width=150>' . $ergebnis[$i]['department'] . '</td>';

'</tr>'

 

dann lasse ich mir die das ergebnis mit einem usort liefern, was auch tadellos funktioniert... das ergebnis sieht dann folgendermassen aus:

 

anton finanzen

berta gl

boris finanzen

cesar finanzen

dora it

 

ich möchte aber die ausgabe so verändern das ich folgendes bekomme

 

A

anton finanzen

B

berta gl

boris finanzen

C

cesar finanzen

D

dora it

 

vielen dank für euere hilfe...

if(($ergebnis[$i]['displayname'][0]) == ($ergebnis[$i]['displayname'][0]))

{

 

}

else

{

echo $ergebnis[$i]['displayname'][0];

}

 

müsste es nicht so irgendwie funktionieren?

Link zu diesem Kommentar

moin,

 

du könntest die einzelnen Array Elemente per "substr" auf den ersten Buchstaben zerlegen und dann mit ner if-Anweisung den Aufbau so gestallten wie du willst.

 

 

In dem Fall wird der erste Buchstabe genommen in der $fkey Variable gespeichert, ist diese Variable gleich der variable $lastfkey, dann ist der Anfansbuchstabe der gleich, sind die beiden Variablen nicht gleich wird der Anfangsbuchstabe genommen und als Upper Case dargestellt.

 

 

Hab zwar das nicht getestet sollte aber genau das machen was du willst.

Aber ich glaube das geht noch einfacher, es gibt meiner Meinung nach eine Array Funktion die ein Array neu "berechnet" bzw. neu aufbaut aus den Werten die schon drinne sind, da kannst du auch neue Schlüssel anlegen, also z.B. "A" => "NAME mit A am ANfang", "B" => "Name mit B am Anfang" etc...

 


$lastfkey = "";

for ($i=0; $i<$anzahl; $i++)
{
   $fkey = substr($ergebnis[$i]["displayname"], 1, 1); 

   echo "<tr>";

   if($fkey != $lastfkey)
   {
        echo "<td width=150 colspan='2'>".strtoupper($fkey)."</td>";
   }
   else
   {
       echo "<td width=150>" . $ergebnis[$i]["displayname"] . "</td>";

       if (empty($ergebnis[$i]['department']))
       {
           echo '<td width=150> </td>';
       }    
       else /*Breite vom Feld*/
       {
           echo '<td width=150>' . $ergebnis[$i]['department'] . '</td>';
       }
   }
   echo "</tr>";

   $lastfkey = $fkey;
}

 

 

Gruß ich

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...