Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/07/2013, 04:59
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Sumar valores con claves coincidentes en array multidimensional

En principio debes tener la lista de posibles tipos, si no lo tienes puedes construirla....

Si la tienes

Código PHP:
Ver original
  1. $impuestos = array(
  2.  
  3. 'qty' => 1 , array('tipo' => 1.21 , 'cantidad' => 4,2),
  4. 'qty' => 2 , array('tipo' => 1.21 , 'cantidad' => 1,2),
  5. 'qty' => 1 , array('tipo' => 1.04 , 'cantidad' => 0,9),
  6. 'qty' => 3 , array('tipo' => 1.04 , 'cantidad' => 5,7),
  7. 'qty' => 2 , array('tipo' => 1.10 , 'cantidad' => 1,8),
  8.  
  9. );  
  10. $tipos=array(1.21,1.04,1.10,....);
  11. $tiposValor=array();
  12.  
  13. for ($t=0;$t<count($tipos);$t++){
  14.      $tiposValor[$t]["tipo"]=$tipos[$t];
  15.      $tiposValor[$t]["valor"]=0;
  16.      for ($i=0;$i<count($impuestos);$i++){
  17.            if($impuestos[$i][1]["tipo"]==$tipos[$t]){
  18.                   $tiposValor[$t]["valor"]+=$impuestos[$i][1]["cantidad"];
  19.            }
  20.      }
  21. }

Si no tienes la lista previa de posibles tipos debes construirla

Código PHP:
Ver original
  1. $tipos=array();
  2.      for ($i=0;$i<count($impuestos);$i++){
  3.           if (!in_array($impuestos[$i][1]["tipo"],$tipos)){
  4.                   $tipos[]=$impuestos[$i][1]["tipo"];
  5.            }
  6.      }
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.