• Revista PROGRAMAR: Já está disponível a edição #55 da revista programar. Faz já o download aqui!

Johny

Como ordenar alfabeticamente em php

7 mensagens neste tópico

Boas pessoal,

Tenho uma base de dados em mysql e la tem um campo chamado nome em que estao varios nomes separados por virgulas gostava de saber como posso fazer em codigo php com que ele ordene alfabeticamente os nomes ja coloquei isto $texto = str_replace(',', '<br />', $texto); para retirar as , e colocar um <br /> agora gostava de ordenar alfabeticamente.

Alguem me pode dar uma ajudinha?

Cumprimentos,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em vez de substituíres as vírgulas, fazes algo como:

//Assim $texto passa a ser um array com os nomes todos separados
$texto = explode(",", $texto);

//Com esta função ordena os nomes
$texto = sort($texto, "SORT_STRING");

//Opcional, com este código mostra os nomes ordenados
foreach ($texto as $indice => $nome) {
    echo $nome."<br />"
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado scorch pela rapida resposta mas agora dá me este erro:

Warning: Invalid argument supplied for foreach() in

o que tenho que fazer?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta assim:

//Assim $texto passa a ser um array com os nomes todos separados
$texto = explode(",", $texto);

//Com esta função ordena os nomes
$texto = sort($texto, "SORT_STRING");

//Opcional, com este código mostra os nomes ordenados
foreach ($texto as $indice => $nome) {
    echo $nome."<br />";
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O codigo que tenho é este nao sei o k esta mal  :P

	while ($line = mysql_fetch_array($consulta)) {
$texto	= $line["membrosregistados"];
//Assim $texto passa a ser um array com os nomes todos separados
$texto = explode(",", $texto);

//Com esta função ordena os nomes
$texto = sort($texto);

//Opcional, com este código mostra os nomes ordenados
foreach($texto as $indice => $nome) {
    echo "-".$nome."<br />";
}}
?>

Se puderes me ajudar agradecia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta:

        while ($line = mysql_fetch_array($consulta)) {
        $texto  = $line["membrosregistados"];
        //Assim $texto passa a ser um array com os nomes todos separados
$texto = explode(",", $texto);

//Com esta função ordena os nomes
$texto = sort($texto);

//Opcional, com este código mostra os nomes ordenados
foreach($texto as $key => $value) {
    echo "-".$nome."<br />";
}}

Se não for isto o problema, não sei o que pode ser. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja consegui resolver  :D

Ficou assim e ja funciona obrigado  :P

while ($line = mysql_fetch_array($consulta)) {
        $texto  = $line["membrosregistados"];
}
$nomes = explode(",", $texto);
sort($nomes);
foreach ($nomes as $key => $val) {
    echo "-". $val ."<br />";
}
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora