Foros del Web » Programando para Internet » PHP »

Agrupar resultados en un mismo array

Estas en el tema de Agrupar resultados en un mismo array en el foro de PHP en Foros del Web. Buenas, Tengo un bucle que hace peticiones a la BD y en cada iteración devuelve varias filas de la BD. Pongo un ejemplo: 3 iteracciones... ...
  #1 (permalink)  
Antiguo 11/10/2012, 04:54
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Agrupar resultados en un mismo array

Buenas,

Tengo un bucle que hace peticiones a la BD y en cada iteración devuelve varias filas de la BD. Pongo un ejemplo:

3 iteracciones...
Recibo 4 filas de resultados (un array) lo guardo en un array resultado.
Recibo 3 filas de resultados (un array) lo apilo en el array resultado
Recibo 5 filas de resultados (un array) lo apilo en el array resultado.

conclusión tengo un array resultado con 12 valores, pero no están en el mismo nivel, sino que se han ido agregando al array resultado, por lo que tengo 3 subarrays.

array Resultado(
[0] ---> [0]-->array()
---> [1]-->array()
---> [2]-->array()
---> [3]-->array()

[1] ---> [0]-->array()
---> [1]-->array()
---> [2]-->array()

[2] ---> [0]-->array()
---> [1]-->array()
---> [2]-->array()
---> [3]-->array()
---> [4]-->array()
)

En todos los resultados hay filas que eran las mismas, por lo que en el array resultado hay filas que se han apilado que ya estaban de otras consultas a la BD.

Cómo puedo hacer para dejar solo una coincidencia, teniendo en cuenta que son arrays dentro de otros arrays y no es un array con todos los resultados?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 11/10/2012, 06:07
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Agrupar resultados en un mismo array

Es simple, pero hay que ver qué datos estás leyendo para agruparlos.

Suponiendo que hablaramos de un reporte de ventas por zona, ciudad y almacén:

Código PHP:
Ver original
  1. $datos=mysql_query("select zona,ciudad,almacen,cantidad from ventas where $condicion");
  2.  
  3. while($f=mysql_fetch_assoc($datos)){
  4.    if(isset($array[$f['zona']][$f['ciudad']][$f['almacen']]))
  5.       $array[$f['zona']][$f['ciudad']][$f['almacen']]+=$f['cantidad'];
  6.    else
  7.       $array[$f['zona']][$f['ciudad']][$f['almacen']]=$f['cantidad'];
  8. }

Etiquetas: agrupar, resultados
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 04:50.