[ Foro de PHP ]

Problema con array

08-Nov-2022 01:32
Luis Crosse
0 Respuestas

Mediante un foreach obtengo el resultado de una consulta correspondiente a 1 solo día .. donde agrupo por el campo hora , de 0 a 23, y obtengo un count de los ingresos. Necesito crear un nuevo array donde se guarden , de 0 a 23 , cada movimiento, completando los intermedios que no arrojan valores con 0 ó con valores por defecto.

Como muestro mas abajo ... de la forma que pude hacer y no funciona ... hace 1 ciclo por cada registro , y eso genera que se reasignen las posiciones en cero y que solo quede guardado el registro de la ultima pasada.
   foreach ($ingresos as $row) {        
   $hora = intval(substr($row->hora, 0, 2));

   for ($i = 0; $i < 24; $i++) {

       if ($row->hora >= 0 && $row->hora <= 4) {
           $fecha_prod = strtotime('-1 day', strtotime($row->fecha));
           $fecha_prod = date('Y-m-d', $fecha_prod);
       }else{
           $fecha_prod = $row->fecha;
       }

   if ($hora == $i) {
       $data = [              
           'fp' => $fecha_prod,
           'fecha' => $row->fecha,
           'hora' => $hora,
           'nuevos' => $row->ingresos,
           'cuenta' => $i . " = " . $hora
       ];          
      var_dump($data);                      
   }else{
       $data = [          
           'fp' => $row->fecha,
           'fecha' => $row->fecha,
           'hora' => $i,
           'nuevos' => $xx,
           'cuenta' => $i . " = " . $hora
           ];
       var_dump($data);                                    
       }        
}

Alguien que me pueda dar una mano ?
Gracias !!




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)