Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos queria tirar uma duvida que estou tendo a muito tempo,Estou tentando criar um ranking de audiência de radio e eu estou tentando assim:
<?php
$Radio1 = 100
$Radio2 = 0;
$Radio3 = 95;
$Radio4 = 5;
$Radio4 = 18;
$lista= array(
array('Name' => 'Radio1 ', 'Ouv' => $Radio1 ),
array('Name' => 'Radio2', 'Ouv' => $Radio2 ),
array('Name' => 'Radio3', 'Ouv' => $Radio3 ),
array('Name' => 'Radio4', 'Ouv' => $Radio4 ),
array('Name' => 'Radio5', 'Ouv' => $Radio5 )
);
?>
Mais ai vem a duvida, Como eu faço pra organizar esse código dentro de uma tabela com ordem pelo numero de Ouvintes?
Ficando assim:
1 Radio1 | 100 Ouv.
2 Radio2 | 100 Ouv.
3 Radio3 | 100 Ouv.
4 Radio4 | 100 Ouv.
5 Radio5 | 100 Ouv.
Queria saber se tem algum jeito mais facil de fazer isso, se tiver qual?
Se entendi direito a ideia, acho que usar o sort pode ser a solução (ou pelo menos o caminho)
Infelizmente não funcionou já tentei outro ele só organiza pelo nome não pelo numero de ouvintes
Como é uma array multidimensional terá que percorrer esta array para depois filtrar utilizando a função sort que o Vinicius lanni citou. fica algo mais ou menos assim:
<?php
$Radio1 = 100;
$Radio2 = 0;
$Radio3 = 95;
$Radio4 = 5;
$Radio5 = 18;
$lista = array(
array('Name' => 'Radio1 ', 'Ouv' => $Radio1 ),
array('Name' => 'Radio2', 'Ouv' => $Radio2 ),
array('Name' => 'Radio3', 'Ouv' => $Radio3 ),
array('Name' => 'Radio4', 'Ouv' => $Radio4 ),
array('Name' => 'Radio5', 'Ouv' => $Radio5 )
);
//Cria os índices das colunas da array $lista (ex: $Name, $Ouv)
foreach ($lista as $row) {
foreach ($row as $key => $value){
${$key}[] = $value; //Cria a array $Name e $Ouv conforme a array principal $lista e suas sub-dimensões.
}
}
sort($Ouv);
$topRanking = $Ouv;
var_dump($topRanking);
?>
"Googlei" e achei esta possível solução no stack: http://stackoverflow.com/questions/17324708/php-array-multisort-not-sorting-my-multidimensional-array-as-expected
>
Como é uma array multidimensional terá que percorrer esta array para depois filtrar utilizando a função sort que o Vinicius lanni citou. fica algo mais ou menos assim:
<?php
$Radio1 = 100;
$Radio2 = 0;
$Radio3 = 95;
$Radio4 = 5;
$Radio5 = 18;
$lista = array(
array('Name' => 'Radio1 ', 'Ouv' => $Radio1 ),
array('Name' => 'Radio2', 'Ouv' => $Radio2 ),
array('Name' => 'Radio3', 'Ouv' => $Radio3 ),
array('Name' => 'Radio4', 'Ouv' => $Radio4 ),
array('Name' => 'Radio5', 'Ouv' => $Radio5 )
);
//Cria os índices das colunas da array $lista (ex: $Name, $Ouv)
foreach ($lista as $row) {
foreach ($row as $key => $value){
${$key}[] = $value; //Cria a array $Name e $Ouv conforme a array principal $lista e suas sub-dimensões.
}
}
sort($Ouv);
$topRanking = $Ouv;
var_dump($topRanking);
?>
"Googlei" e achei esta possível solução no stack: http://stackoverflow.com/questions/17324708/php-array-multisort-not-sorting-my-multidimensional-array-as-expected
Funcionou mais como eu faço pra inverter o resultado? ele ta dando o resulltado do menor para o maior.
E tambem como eu passo ele pra tabela?
Para inverter, o array_reverse deve resolver;
Aqui tem a lista de tudo que é possivel fazer manipulando arrays em php, vale a pena dar uma estudada :)
Para inserir num banco de dados, voce pode colocar um comando insert dentro do loop foreach, por exemplo.
>
Para inverter, o array_reverse deve resolver;
Aqui tem a lista de tudo que é possivel fazer manipulando arrays em php, vale a pena dar uma estudada :)
Para inserir num banco de dados, voce pode colocar um comando insert dentro do loop foreach, por exemplo.
Olha acontece o seguinte erro quando eu uso o sort, o nome da radio n ta correspondendo ao numero de ouvintes
e tambem queria sabe se existe algum codigo pratico pra pegar o numero de ouvintes de uma radio passando o ip e porta
Se entendi direito a ideia, acho que usar o sort pode ser a solução (ou pelo menos o caminho)