Problema ao exibir array
Estou com um problema na lógica para exibir os dados de um array.
É o seguinte:
Tenho uma função, que me retorna o resultado de cadastros por UF por dia. Nela passo 2 parâmetros, um array com as datas e um array com os estados.
Montando os parametros para passar para a funçao.
$uf = array('sp','rj');
$d1 = '2015-09-15';
$d2 = '2015-09-17';
$timestamp1 = strtotime( $d1 );
$timestamp2 = strtotime( $d2 );
while ( $timestamp1 <= $timestamp2 ) {
$data_mod[] = date( 'Y-m-d', $timestamp1 ) . PHP_EOL; // data_mod vira um array com as data entre $d1 e $d2
$timestamp1 += 86400;
}
Função:
function grafico_cadastro_por_dia($conexao,$uf,$data_mod){
$lista = array();
$qtd_dias = count($data_mod);
$qtd_uf = count($uf);
for($i = 0; $i <= $qtd_uf; $i++) {
if( $uf[$i] ) { $where[] = " uf = '{$uf[$i]}'"; } //monto o implode para o array de UF
}
for($i = 0; $i <= $qtd_dias; $i++) {
if( $data_mod[$i] ) { $where2[] = " dataCadastro = '{$data_mod[$i]}'"; } //monto o implode para o array de datas
}
$query = "SELECT dataCadastro,uf,sum(cadastros) FROM tblCadastros where (".implode( ' or ',$where2 ).") AND (".implode( ' or ',$where ).") group by 1,2";
$sql = mysql_query($query,$conexao);
while($row = mysql_fetch_assoc($sql)){
$lista[] = $row;
}
return $lista;
}
No retorno da função, eu recebo os seguintes dados.
$funcao = grafico_cadastro_por_dia($conexao,$uf,$data_mod);
for($i = 0; $i <= count($funcao); $i++){
echo '<br>';
print_r($funcao[$i]);
}
Resultado:
Array ( [dataCadastro] => 2015-09-15 [uf] => SP [sum(cadastros)] => 36 )
Array ( [dataCadastro] => 2015-09-15 [uf] => RJ [sum(cadastros)] => 9 )
Array ( [dataCadastro] => 2015-09-16 [uf] => SP [sum(cadastros)] => 19 )
Array ( [dataCadastro] => 2015-09-16 [uf] => RJ [sum(cadastros)] => 8 )
Array ( [dataCadastro] => 2015-09-17 [uf] => SP [sum(cadastros)] => 14 )
Array ( [dataCadastro] => 2015-09-17 [uf] => rj [sum(cadastros)] => 2 )
Como podem ver , a função retorna 2 vezes a data pois tem mais de um estado para exibir o valor.
Se eu passo 3 estados no array , ele exibiria 3 vezes a mesma data.
Até ai, tudo bem.
O problema começa agora , já que vou colocar esses resultados em um gráfico.
E não estou conseguindo imprimir os resultados na ordem que o gráfico pede.
Teria que exibir nessa ordem:
[$data, $total "uf SP" , $total "uf RJ"]
['2015-09-15', 36 , 9],
['2015-09-16', 19 , 8],
e assim por diante.
Mas já rascunhei de tudo quanto é forma que consegui imaginar, mas não consegui exibir os dados dessa forma.
Alguém pode me ajudar?
Desde ja , grato.
Discussão (0)
Carregando comentários...