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