Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/06/2014, 02:49
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema array

Esto lo tendrás en una bbdd luego es mucho mas facil hacerlo en la consulta que crea el array.

Código MySQL:
Ver original
  1. SELECT nombre,SUM(precio),MAX(maximo)
  2. FROM tuTabla
  3. GROUP BY nombre;

esto te da los datos tal y como los necesitas.

En php tambien se puede hacer pero es mucho mas complicado, deberias ordenar el array por nombre, y luego sumar mientras el nombre sea el mismo y buscar el maximo:

Una función para ordenar el array array_orderby http://www.php.net/manual/en/functio...ort.php#100534

Código PHP:
Ver original
  1. $arrayOrdenado=array_orderby($array2,'nombre', SORT_ASC);
  2. $nombre=$arrayOrdenado[0]["nombre"];
  3. $sumaPrecio=0;
  4. $maximo=0;
  5. $arrayResumen=array();
  6. for($p=0;$p<count($arrayOrdenado);$p++){
  7.      if($arrayOrdenado[$p]["nombre"]!=$nombre){
  8.           $arrayResumen[]["nombre"]=$nombre;
  9.           $arrayResumen[]["sumaPrecio"]=$sumaPrecio;
  10.           $arrayResumen[]["maximo"]=$maximo;
  11.           $nombre=$arrayOrdenado[$p]["nombre"];
  12.           $sumaPrecio=0;
  13.           $maximo=0;
  14.       }
  15.        $sumaPrecio=$sumaPrecio+$arrayOrdenado[$p]["precio"];
  16.         if($arrayOrdenado[$p]["maximo"]>$maximo)
  17.                $maximo=$arrayOrdenado[$p]["maximo"];
  18. }
  19. for($i=0;$i<count($arrayResumen);$i++){
  20.  
  21. echo $arrayResumen[$i]['nombre']
  22. echo $arrayResumen[$i]['sumaPrecio']
  23. echo $arrayResumen[$i]['maximo']
  24.  
  25. }

Lo he hecho al vuelo, puede contener errores.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 18/06/2014 a las 02:59