Ordenar Array [RESOLVIDO]

1. Ordenar Array [RESOLVIDO]

Valdinei de Souza Campos
valdinei.campos

(usa CentOS)

Enviado em 09/02/2011 - 08:39h

Tenho o seguinte ARRAY, necessito ordenar pela a varivel, exemplo a variável $exchange_total me retorna um valor em numero “520”por exemplo, usando o sort consegui ordenar pelo o titulo que no caso é Exchange. Como faço para ordenar pela variável?

$data = array(
array('Exchange', $exchange_total),
array('Anti-Spam', $antispam_total),
array('GPO', $gpo_total),
array('Acesso Pastas', $pastas_total),
array('Notes', $notes_total),
array('Tel Fixa', $fixa_total),
array('Redes', $rede_total),
array('Tel Celular', $movel_total),
array('Totvs', $totvs_total),
array('Novos Usuario', $ad_total),
array('Backup', $bkp_total),
array('Antivirus', $av_total),
array('BD', $bd_total),
array('Internet', $internet_total),
array('FTP', $ftp_total),
array('Legados', $legados_total),
array('Spark', $spark_total),
array('Projetos', $projetos_total),
array('TS', $ts_total),
array('Intranet', $intranet_total),
array('Vetorh', $vetorh_total),
array('Ocomon', $ocomon_total),
array('Doc Clients', $doc_total)
);



  


2. Re: Ordenar Array [RESOLVIDO]

Francisco Ambrozio
fco

(usa Slackware)

Enviado em 09/02/2011 - 09:10h

Olá,

Primeiro, creio que você não precise usar um array de array:

$data = array(
array('Exchange', $exchange_total),
array('Anti-Spam', $antispam_total),
array('GPO', $gpo_total),
.
.
.);

Pode usar esta sintaxe, usando um array só e definindo o par chave => valor:

$data = array(
'Exchange' => $exchange_total,
'Anti-Spam'=> $antispam_total,
'GPO' => $gpo_total,
.
.
.);

Segundo, o sort ordem sim pelo valor do array. Mas, como disse, no seu caso, você tem um array de arrays, o resultado fica meio estranho mesmo. Ainda assim, o melhor é usar o asort ao invés do sort. Isto porque o asort mantém a associação chave => valor, já o sort cria um array com novas chaves, eliminando as que você definiu.

Abraço


3. Re: Ordenar Array [RESOLVIDO]

Valdinei de Souza Campos
valdinei.campos

(usa CentOS)

Enviado em 09/02/2011 - 09:21h

Estou utilizando um array dentro de outro para poder gerar graficos no PHPLot, é apenas desta forma que ele entende, caso usar o exemplo citado acima ao gerar o grafico dara um erro "DrawGrph():Empty data set"


4. Re: Ordenar Array [RESOLVIDO]

Francisco Ambrozio
fco

(usa Slackware)

Enviado em 09/02/2011 - 09:48h

Entendi...

Bom, não achei nenhuma função que faça isto, se estiver enganado que me corrijam, mas segue um modo de chegar onde você deseja:

$data = array(
'Exchange' => 10,
'Anti-Spam' => 0,
'GPO' => 512,
'Acesso Pastas' => 15,
'Notes' => 99,
'Tel Fixa' => 86,
'Redes' => 1,
'Tel Celular' => 1,
'Totvs' => 9,
'Novos Usuario' => 245);

asort($data);
$ndata = array();

foreach($data as $chave => $valor) {
$ndata[] = array($chave, $valor);
}

unset($data);
print_r($ndata);


Obs1: Usei valores aleatórios, só pra ver se estava funcionando.
Obs2: Se for pra ordenar em ordem decrescente use o arsort ao invés do asort.


5. Re: Ordenar Array [RESOLVIDO]

Valdinei de Souza Campos
valdinei.campos

(usa CentOS)

Enviado em 09/02/2011 - 11:42h

Muito obrigado, dessa forma funcionou.

abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts