Ir para conteúdo
Fórum Script Brasil
  • 0

Ordenas Array Multi-dimensional Por Uma Chave


Guest virgilio

Pergunta

Guest virgilio

eu tenho o seguinte codigo

$i=0;
  while($i<$pa_num_rows) {
    $pa_id = mysql_result($pa_query, $i, 'pa_id');
    $pa_alternativa = mysql_result($pa_query, $i, 'pa_alternativa');
    $pa_votos_query = mysql_query('SELECT pv_id FROM poll_votos WHERE pa_id='.$pa_id.' AND pp_id='.$pp_id.';');
    $pa_votos_rows = mysql_num_rows($pa_votos_query);
    $pa_votos[$i]['vot']=$pa_votos_rows;
    $pa_votos[$i]['alt']=$pa_alternativa;
    $i++;
}

Descrição das variáveis

$i - Não precisa dizer....

$pa_num_rows - Retorno de mysql_num_rows na tabela de alterntivas que tem o campo pp_id igual ao da pergunta que esta sendo usada atualmente

$pa_query - Retorno de mysql_query('SELECT pa_id, pa_alternativa FROM poll_alternativas WHERE pp_id='.$pp_id.' ORDER BY pa_alternativa')

Agorao problema: no array $pa_votos, como eu faço para organizar o array por votos (pela key 'vot' maior)?

Tentei asort() junto de reset(), mas dava na mesma q não usar nada..... alguém já enfrentou alguam situação parecida?

Tks!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
Guest virgilio

usei esta função, ela até conseguiu inverter o array, mas mesmo assim não está ordenando pela key 'vot'

eu estou usando assim:

array_multisort($pa_votos, SORT_NUMERIC, SORT_DESC);

reset($pa_votos);

se eu tento usar assim:

array_multisort($pa_votos['vot'], SORT_NUMERIC, SORT_DESC);

reset($pa_votos);

ele da erro e fala q o primeiro parametro não é um array... como se usa essa função? ou ela n faz isso q eu estou querendo (ordenar um array por uma key específica)?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest virgilio

consegui usar da seguinte forma:

array_multisort(array_keys($pa_votos, 'vot'), SORT_NUMERIC, SORT_DESC);

mas ele da o mesmo resultado, ou seja, não está ordenando pela key 'vot'...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest virgilio

por favor, desculpem-me a insitencia, mas eu preciso entregar este trabalho para um amigo logo... se vocês puderem me ajudara resovler isso, fica imensamente grato, assim como pretendo ajuda-los com suas duvidas no que eu souber!

obrigadao! abços!

Link para o comentário
Compartilhar em outros sites

  • 0

oi, eu sou o virgilio novamente, mas decidi me cadastrar... e ainda não consegui resolver essa duvida.. tentie usar algumas funções que o pessoal postou la no User Contributions do Manual do PHP.NET, mas nada funcionava... tem algum lugar que tenha um guia, tipo um passo-a-passo sobre arrays?

talvez eu esteja fazendo alguma coisa errada... bom... no demais, desculpem por minha pentelhação....

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei se vai funcionar (não tenho como testar aqui)

Mas voce poderia inverter a logica do array:

Ficando assim

$pa_votos['vot'][$i]=$pa_votos_rows;
$pa_votos['alt'][$i]=$pa_alternativa;

Isso faz com que você tenha 2 grupos: VOT e ALT , porém o mesmo KEY para os 2.

Aí eu acho que fica mais fácil para voce ordenar...

Testa e depoi posta aí...

Até+

cool.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...