globe: alphabetisches sortieren von mehrdimensionalen arrays

Beitrag lesen

n'abend,

mal wieder das "alphabetische sortieren von mehrdimensionalen arrays" :-(
hab gegoogelt, nichts gefunden

was du im Konkreten falsch gemacht hast, oder einfach nicht bedacht hast, hat dir Martin bereits gezeigt. In meinem tollen vollgemüllten /tests/ Verzeichnis bin ich eben über folgendes gestolpert:

<?php  
  
$array = array(  
  array( "hallo welt", 1 ),  
  array( "hallo wald", 2 ),  
  array( "Heinrich wald", 2 ),  
  array( "albert wald", 2 ),  
  array( "adolf wald", 2 ),  
  array( "adalbert wald", 2 ),  
  array( "Adolf alban", 2 ),  
  array( "Ärmel Los", 2 ),  
  array( "Urmel aus dem Eis", 2 ),  
  array( "Ürügü Ütschügü", 2 )  
);  
  
function sort_callback( $a, $b )  
{  
  // resolve reference and case issues  
  $a = strtoupper( $a[0] );  
  $b = strtoupper( $b[0] );  
  
  // trim specialchars  
  $from = array( 'Ä', 'Ö', 'Ü', 'ß' );  
  $to   = array( 'A', 'O', 'U', 'SS' );  
  str_replace( $from, $to, $a);  
  str_replace( $from, $to, $b);  
  
  // evaluate position  
  return  $a == $b ? 0 : $a > $b ? 1 : -1;  
}  
  
echo "<pre>";  
print_r( $array );  
echo "</pre>";  
usort( $array, "sort_callback" );  
  
echo "<pre>";  
print_r( $array );  
echo "</pre>";  
?>

Das ist zwar mit Sicherheit nicht die edelste aller möglichen Lösungen, hatte mir aber damals gereicht.

weiterhin schönen abend...

--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|