Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jairo Bankhardt

[Resolvido] Ordenar array

Recommended Posts

Olá.

 

estou tentando sem sucesso ordenar um array que contém nomes. Alguns destes nomes contém acentos e por este motivo a caca está armada.

 

 

este é o código:

<?php
$matriz = array(0=>"João", 1=>"Jaelson", 2=>"Jaílson", 3=>"Júlio", 4=>"Jaison");

asort($matriz);
foreach($matriz as $chave => $valor ){
	echo "$valor<br>";
}

echo "---------------------------<br>";
natcasesort($matriz);
foreach($matriz as $chave => $valor ){
	echo "$valor<br>";
}
?>

 

e este é o resultado:

Jaelson

Jaison

Jaílson

João

Júlio

---------------------------

Júlio

Jaílson

Jaelson

Jaison

João

Os nomes são apenas exemplos, mas veja que curioso.

Quando a matriz é ordenada por asort (pq é importante manter a relação de índices e valores) Jaison vem antes de Jaílson!! Eis o acento maledeto bagunçando a ordem.

 

Quando a matriz é ordenada por natcasesort o primeiro nome que aparece é Júlio!!!

 

Como fazer para ordenar corretamente este array?

Compartilhar este post


Link para o post
Compartilhar em outros sites

converta esses nomes retirando os acentos^^

um Exemplo:

 

<?

$nome = 'joão josé';

$nome = ereg_replace("[^a-zA-Z0-9_.] ", "",

strtr($frase, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ",

"aaaaeeiooouucAAAAEEIOOOUUC"));

echo $nome;

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa retirar os acentos, basta passar o segundo parâmetro da função asort().

Veja: http://br.php.net/manual/pt_BR/function.sort.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.