Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/06/2011, 15:49
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: UTF-8 y asort()

Sí de hecho podrías hacer algo así:
Código PHP:
Ver original
  1. $array = ;
  2. uksort($array, function($name1, $name2) {
  3.     $patterns = array(
  4.         'a' => '(á|à|â|ä|Á|À|Â|Ä)',
  5.         'e' => '(é|è|ê|ë|É|È|Ê|Ë)',
  6.         'i' => '(í|ì|î|ï|Í|Ì|Î|Ï)',
  7.         'o' => '(ó|ò|ô|ö|Ó|Ò|Ô|Ö)',
  8.         'u' => '(ú|ù|û|ü|Ú|Ù|Û|Ü)'
  9.     );
  10.    
  11.     $name1 = preg_replace(array_values($patterns), array_keys($patterns), $name1);
  12.     $name2 = preg_replace(array_values($patterns), array_keys($patterns), $name2);
  13.    
  14.     return strcasecmp($name1, $name2);
  15. });
  16.  
  17. var_dump($array);

Con uksort() haces un sort pero mantienes las llaves (indices).

Saludos.

* Nota el ejemplo solo es para PHP5.3, para <PHP5.2 tienes que usar un callback.