Foros del Web » Programando para Internet » PHP »

Realizar conteo sobre array booleano ¿?

Estas en el tema de Realizar conteo sobre array booleano ¿? en el foro de PHP en Foros del Web. Hola, Estoy registrando en un array (meses) el consumo de agua que tenemos en varias oficinas. Por ejemplo recibo una factura con periodo 15/01/2015-16/02/2015 y ...
  #1 (permalink)  
Antiguo 29/01/2016, 05:50
 
Fecha de Ingreso: octubre-2011
Mensajes: 205
Antigüedad: 8 años, 7 meses
Puntos: 1
Realizar conteo sobre array booleano ¿?

Hola,

Estoy registrando en un array (meses) el consumo de agua que tenemos en varias oficinas. Por ejemplo recibo una factura con periodo 15/01/2015-16/02/2015 y prorrateo el consumo total para el mes 01 y para mes 02 y voy acumulando en ese array el consumo de las diferentes oficinas para cada mes y poder ver la evolución mensual a lo largo del año.

Hasta aquí todo ok, el problema es que el número de oficinas es muy variable, hay muchas altas y bajas y querría registrar el número de oficinas que tienen consumo cada mes. Puede haber facturas con menos de un mes, por ejemplo 10/01/2015-17/01/2015 y 18/01/2015-31/01/2015 entonces si hago un contador (+1) cuando exista periodo este caso me lo contaría como dos oficinas.

Conocen alguna forma de hacerlo? No se si existe la posibilidad de tener un array booleano en el que almacenar true cuando aparece un periodo y luego contar todos los true que tengo para ese periodo??

Gracias.
  #2 (permalink)  
Antiguo 29/01/2016, 13:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.437
Antigüedad: 8 años, 6 meses
Puntos: 935
Respuesta: Realizar conteo sobre array booleano ¿?

Podrías guardar la información de cada oficina en un array y este en otro que guardará los arrays de datos de cada oficina, pudiendo así guardar las fechas de consumo y cuando vayas a hacer el conteo, recorrerías al array principal, tomando las fechas de cada array de datos y restarías las fechas, de tal forma que si la diferencia es menor a 30 (treinta días), no lo tomas en cuenta.

Código PHP:
Ver original
  1. $oficinas = [
  2.     [
  3.         'numero_oficina' => '35345',
  4.         'fecha_inicial' => '2016-01-02',
  5.         'fecha_final' => '2016-02-01'
  6.     ],
  7.     [
  8.         'numero_oficina' => '03452',
  9.         'fecha_inicial' => '2016-01-14',
  10.         'fecha_final' => '2016-01-25'
  11.     ],
  12.     //Otros arrays    
  13. ];
  14.  
  15. $contador = 0;
  16.  
  17. foreach ($oficinas as $oficina){
  18.     if ((new DateTime($oficina['fecha_inicial']))->diff(new DateTime($oficina['fecha_final']))->format('%d') == 30) $contador++;
  19. }

Un saludo
__________________
«Laissez faire et laissez passer, le monde va de lui même»

Etiquetas: conteo, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:03.