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.