Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/05/2009, 10:56
Avatar de el_gustavo
el_gustavo
 
Fecha de Ingreso: mayo-2009
Mensajes: 117
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con ciclo while y mezclar ordenado arreglo

Gracias por las ayudas, pero era algo mas simple que eso, no eran if sino else if, o sea, sino pasaba una cosa pasaba la otra, en total ahi les paso como quedo.

$ra=0;
$rp=0;
$rt=0;
$restotal=array();
$carfrom=count($refrombycountry);
$carto=count($retobycountry);
while($ra<$carfrom || $rp<$carto){
if(strcmp($refrombycountry[$ra]['pais'],$retobycountry[$ra]['pais'])==0){
$restotal[$rt]['pais']= $refrombycountry[$ra]['pais'];
$restotal[$rt]['totalcalls']=$retobycountry[$rp]['totalcalls']+$refrombycountry[$ra]['totalcalls'];
$restotal[$rt]['conectcalls']=$retobycountry[$rp]['conectcalls']+$refrombycountry[$ra]['conectcalls'];
$restotal[$rt]['minutes']=$retobycountry[$rp]['minutes']+$refrombycountry[$ra]['minutes'];
$restotal[$rt]['balance']=$retobycountry[$rp]['balance']+$refrombycountry[$ra]['balance'];
$ra++;
$rp++;
$rt++;
}
else if(strcmp($refrombycountry[$ra]['pais'],$retobycountry[$ra]['pais'])<0){
$restotal[$rt]['pais']= $refrombycountry[$ra]['pais'];
$restotal[$rt]['totalcalls']=$refrombycountry[$ra]['totalcalls'];
$restotal[$rt]['conectcalls']=$refrombycountry[$ra]['conectcalls'];
$restotal[$rt]['minutes']=$refrombycountry[$ra]['minutes'];
$restotal[$rt]['balance']=$refrombycountry[$ra]['balance'];
$ra++;
$rt++;
}
else if(strcmp($refrombycountry[$ra]['pais'],$retobycountry[$ra]['pais'])>0){
$restotal[$rt]['pais']= $retobycountry[$rp]['pais'];
$restotal[$rt]['totalcalls']=$retobycountry[$rp]['totalcalls'];
$restotal[$rt]['conectcalls']=$retobycountry[$rp]['conectcalls'];
$restotal[$rt]['minutes']=$retobycountry[$rp]['minutes'];
$restotal[$rt]['balance']=$retobycountry[$rp]['balance'];
$rp++;
$rt++;
}
else if (!(isset($retobycountry[$rp]))){
$restotal[$rt]['pais']= $refrombycountry[$ra]['pais'];
$restotal[$rt]['totalcalls']=$refrombycountry[$ra]['totalcalls'];
$restotal[$rt]['conectcalls']=$refrombycountry[$ra]['conectcalls'];
$restotal[$rt]['minutes']=$refrombycountry[$ra]['minutes'];
$restotal[$rt]['balance']=$refrombycountry[$ra]['balance'];
$rp++;
$rt++;
}
else if (!(isset($refrombycountry[$rp]))){
$restotal[$rt]['pais']= $retobycountry[$rp]['pais'];
$restotal[$rt]['totalcalls']=$retobycountry[$rp]['totalcalls'];
$restotal[$rt]['conectcalls']=$retobycountry[$rp]['conectcalls'];
$restotal[$rt]['minutes']=$retobycountry[$rp]['minutes'];
$restotal[$rt]['balance']=$retobycountry[$rp]['balance'];
$ra++;
$rt++;
}
}

En resumen, es de esos errores "bobos" de sintaxis que uno puede estar todo el dia buscandolo sin darse cuenta cual era el problema realmente.
Eits, fijate que si, los arreglos inician con 0 pero con tu consejo, el ciclo recorreria todos los elementos menos el ultimo.
Que bien, fijate que si los count dan cero entonces el ciclo ni siquiera inicia.

Gracias gente, ya vendre con otro error "particular", existe algun apartado para cake php?? estaria bueno hacerlo?? o no es tan usado por estos lares?

Lo dejo abierto por un rato al tema por si surge alguna eventualidad, despues lo cierro.