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

Necesito un while que me mezcle dos arreglos, pero no entiendo por que no sale del ciclo, al final termina con un ofsset -->Undefined offset: 2

El codigo es el siguiente

$ra=0;
$rp=0;
$rt=0;
$restotal=array();

while($ra<count($refrombycountry) || $rp<count($retobycountry)){
if(strcmp($refrombycountry[$ra]['pais'],$retobycountry[$rp]['pais'] )<0){
$restotal[$rt]=$refrombycountry[$ra];
$ra++;
$rt++;
}
if(strcmp($refrombycountry[$ra]['pais'],$retobycountry[$rp]['pais'])>0){
$restotal[$rt]=$retobycountry[$rp];
$rp++;
$rt++;
}
if(strcmp($refrombycountry[$ra]['pais'],$retobycountry[$rp]['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++;
}
if(!(isset($refrombycountry[$ra]))){
$restotal[$rt]=$retobycountry[$rp];
$rp++;
$rt++;
}
if(!(isset($retobycountry[$rp]))){
$restotal[$rt]=$refrombycountry[$ra];
$ra++;
$rt++;
}
}
}

Obviamente un arreglo puede tener mayor cantidad de elementos que otro o pueden tener la misma cantidad.
Da la casualidad, en un caso que ambos refrombycountry y retocountry tienen la misma cantidad de elementos y strmcp devuelve 0 en ambos casos, pero por alguna razon no sale del ciclo cuando debe salir

Última edición por el_gustavo; 21/05/2009 a las 10:15