Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Arrays
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Sortierfunktionen




Zu einer effizienten Datenverarbeitung gehören natürlich auch spezielle Funktionen, die es Ihnen ermöglichen, Ihre Daten zu sortieren. Hierfür stellt Ihnen PHP eine mehr als ausreichende Anzahl von Funktionen zur Verfügung.


Einsatz von sort() und rsort()

Diese beiden Funktionen ermöglichen es Ihnen, Ihre indizierten bzw. linearen Arrays auf einfache Art und Weise zu sortieren.
  • Die Funktion sort() sortiert ein Array aufsteigend unter Beibehaltung der Zuordnung der Indizes (sort).
  • Die Funktion rsort() sortiert ein Array absteigend unter Beibehaltung der Zuordnung der Indizes (reverse sort.)

Beispiel – sort()

<?php
$personen = array (
    "Matthias",
    "Caroline",
    "Gülten",
    "Toni"
    );
sort ($personen);
reset ($personen);
// Ausgabe – Schlüssel und Werte
while (list ($key, $val) = each ($personen)) {
  echo "$key $val<br>";
}
?>

Ausgabe
0 Caroline
1 Gülten
2 Matthias
3 Toni

Beispiel – rsort()

<?php
$personen = array (
    "Matthias",
    "Caroline",
    "Gülten",
    "Toni"
    );
rsort ($personen);
reset ($personen);
// Ausgabe – Schlüssel und Werte
while (list ($key, $val) = each ($personen)) {
  echo "$key $val<br>";
}
?>

Ausgabe
0 Toni
1 Matthias
2 Gülten
3 Caroline

Der optionale zweite Parameter sort_flags kann benutzt werden, um das Sortierverhalten mit den folgenden Flags zu beeinflussen.

Flags für Sortiertypen:
  • SORT_REGULAR – Vergleiche Einträge normal
  • SORT_NUMERIC – Vergleiche Einträge numerisch
  • SORT_STRING – Vergleiche Einträge als Strings


Einsatz von asort() und arsort()

Diese beiden Funktionen ermöglichen es Ihnen, Ihre assoziativen Arrays auf einfache Art und Weise zu sortieren.
  • Die Funktion asort() sortiert ein Array vorwärts unter Beibehaltung der Zuordnung der Indizes (associative sort).
  • Die Funktion arsort() sortiert ein Array rückwärts unter Beibehaltung der Zuordnung der Indizes (associative reverse sort).

Beispiel – asort()

<?php
$personen = array (
    "P1"=>"Matthias",
    "P2"=>"Caroline",
    "P3"=>"Gülten",
    "P4"=>"Toni"
    );
asort ($personen);
reset ($personen);
// Ausgabe – Schlüssel und Werte
while (list ($key, $val) = each ($personen)) {
  echo "$key $val<br>";
}
?>



Ausgabe
P2 Caroline
P3 Gülten
P1 Matthias
P4 Toni

Beispiel – arsort()
<?php
$personen = array (
    "P1"=>"Matthias",
    "P2"=>"Caroline",
    "P3"=>"Gülten",
    "P4"=>"Toni"
    );
arsort ($personen);
reset ($personen);
// Ausgabe – Schlüssel und Werte
while (list ($key, $val) = each ($personen)) {
    echo "$key $val<br>";
}
?>

Ausgabe
P4 Toni
P1 Matthias
P3 Gülten
P2 Caroline

Der optionale zweite Parameter sort_flags kann benutzt werden, um das Sortierverhalten mit den folgenden Flags zu beeinflussen. Flags für Sortiertypen:
  • SORT_REGULAR – Vergleiche Einträge normal
  • SORT_NUMERIC – Vergleiche Einträge numerisch
  • SORT_STRING – Vergleiche Einträge als Strings


Einsatz von ksort()

Sollten Sie das Array wieder in die ursprüngliche Reihenfolge bringen wollen, wenden Sie ksort() an. Die Funktion sortiert aufsteigend nach den Schlüsseln.

Beispiel

<?php
$personen = array (
    "P1"=>"Matthias",
    "P2"=>"Caroline",
    "P3"=>"Gülten",
    "P4"=>"Toni"
    );
arsort ($personen);
reset ($personen);
// Ausgabe – Schlüssel und Werte
while (list ($key, $val) = each ($personen)) {
  echo "$key $val<br>";
}
ksort ($personen);
reset ($personen);
// Ausgabe – Schlüssel und Werte
while (list ($key, $val) = each ($personen)) {
  echo "$key $val<br>";
}
?>

Ausgabe
P4 Toni
P1 Matthias
P3 Gülten
P2 Caroline

P1 Matthias
P2 Caroline
P3 Gülten
P4 Toni



Einsatz von usort(), uasort() und uksort()

Sollten Sie Ihre eigene Vorstellung eines sortierten Arrays haben, können Sie die Funktionen usort(), uasort() und uksort() einsetzen. Gegenüber den bereits beschriebenen Variationen können Sie als zusätzlichen Parameter eine Funktion übergeben, die bestimmte Sortiermerkmale festlegt. Die Funktion muss den Sortiervorgang nach folgendem Schema durch Rückgabe eines bestimmten Code steuern:
  • 0 – Zwei miteinander verglichene Werte sind gleich.
  • 1 – Der zweite Parameter ist größer als der erste.
  • -1 – Der erste Parameter ist größer als der zweite.

Entsprechend interpretiert PHP beim Sortiervorgang dies als Einordnungskriterium.

Beispiel – aufsteigend

<?php
$personen = array (
    "ma"=>"Matthias",
    "ca"=>"Caroline",
    "gü"=>"Gülten",
    "to"=>"Toni",
    "mi"=>"Maria",
    "do"=>"Doro"
    );
function vergleich($a, $b) {
  if ($a == $b) return 0;
  elseif ($a > $b) return 1;
  else return -1;
}
uksort($personen, vergleich);
// Ausgabe
foreach($personen as $key=>$element) {
  echo "$key: $element<br>";
}
?>

Ausgabe
ca: Caroline
do: Doro
gü: Gülten
ma: Matthias
mi: Maria
to: Toni

Beispiel – absteigend

<?php
$personen = array (
    "ma"=>"Matthias",
    "ca"=>"Caroline",
    "gü"=>"Gülten",
    "to"=>"Toni",
    "mi"=>"Maria",
    "do"=>"Doro"
    );
function vergleich($a, $b) {
  if ($a == $b) return 0;
  elseif ($a > $b) return -1;
  else return 1;
}
uksort($personen, vergleich);
// Ausgabe
foreach($personen as $key=>$element) {
  echo "$key: $element<br>";
}
?>

Ausgabe
to: Toni
mi: Maria
ma: Matthias
gü: Gülten
do: Doro
ca: Caroline



 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt