dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Arrays und Arrayvariablen

Wie kann ich ein Array nach einem beliebigen Kriterium sortieren lassen?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

PHP stellt eine Reihe von vordefinierten Sortierfunktionen zur Verfügung. Wenn diese nicht ausreichen, kann man mit Hilfe der Funktion usort() nach beliebigen Kriterien sortieren lassen. Der Funktion muss eine Vergleichsfunktion und das zu sortierende Array als Parameter mit übergeben werden.

Das nachfolgende Beispiel sortiert ein Array von Paaren alphabetisch nach dem 2. Element.

kris@valiant:~ > ./php
<?php
  $a = array(
         array(0, "Schmidt"),
         array(2, "Albert")
       );
 
  function cmp($a, $b) {
    printf("type a = %s type b = %s\n", gettype($a), gettype($b));
    if ($a[1] == $b[1]) return 0;
    return ($a[1] > $b[1])?1:-1;
  }
 
  usort ($a, "cmp");
 
  foreach($a as $k => $v)
      printf("k = %s  v[0] = %s  v[1] = %s\n", $k, $v[0], $v[1]);
?>
X-Powered-By: PHP/4.0b5-dev
Content-type: text/html; charset=iso-8859-1
 
type a = array type b = array
k = 0  v[0] = 2  v[1] = Albert
k = 1  v[0] = 0  v[1] = Schmidt
kris@valiant:~ >
Wie kann ich ein Array nach einem beliebigen Kriterium sortieren lassen?
http://www.php-faq.de/q-arrays-sortieren.html
 

Login