Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2011, 15:59
Avatar de auttranadhie
auttranadhie
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 5 meses
Puntos: 8
Pregunta UTF-8 y asort()

Hola a todos:

Mi problema es el siguiente:

Tengo una matriz cuyos índices se alimentan con el ID de una tabla y cuyos valores son una concatenación de cada registro de dicha tabla.

Para mostrar adecuadamente los registros utilizo asort() para ordenarlos y no perder el valor de los índices.

La página está codificada en UTF-8 (y así debe seguir).

El problema surge cuando ordeno los registros con asort() y los muestro en pantalla: los caracteres con tildes (i.e., acentuados) u otros elementos (p.e., diéresis, etc.) aparecen alfabéticamente por detrás de aquellos que no están alterados.

Os dejo una muestra:

Código PHP:
$array = array("1" => "Cáscara""2" => "Cascaras");
print_r($array);
asort($array);
print_r($array); 
La impresión en pantalla me devuelve lo siguiente:

Array
(
[1] => Cáscara
[2] => Cascaras
)
Array
(
[2] => Cascaras
[1] => Cáscara
)


El primer listado es la matriz sin ordenar y el segundo ordenado. Como podéis observar la palabra "Cáscara" debiera estar en primer lugar pero, sin embargo, no es así.

He de decir que he probado con natsort() y natcasesort() aunque, en ningún caso, he obtenido el resultado esperado.

Agradezco a cualquiera que pueda aportar alguna idea al respecto.

Muchas gracias a todos y un saludo.
__________________
A. Uttranadhie