![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
21/05/2009, 10:08
|
![Avatar de el_gustavo](http://static.forosdelweb.com/customavatars/avatar303890_2.gif) | | | Fecha de Ingreso: mayo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses 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 |