Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Arrays
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


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


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

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 einfach 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 einfach 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 Funktionen 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 eigenen 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össer als der erste.
. -1 - Der erste Parameter ist grösser 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($personenvergleich);
// 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($personenvergleich);
// Ausgabe
foreach($personen as $key=>$element) {
    echo 
"$key: $element<br>";
}
?>




Ausgabe



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




 


Funktionen für mehrer Elemente
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de