Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/06/2010, 04:22
pennyjou
 
Fecha de Ingreso: mayo-2010
Mensajes: 30
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: array de novata

Hola triby, lo primero muchas gracias por responder
Si, la verdad es que el código que he enviado está bastante mal jijijiji, pero es que lo escrito y reescrito tantas veces que ya me estoy volviendo loca.

El problema es que el número de elementos nuevo puede no ser igual al número de elementos que ya había y encima pueden exitir el valor del elemento en el antiguo pero estar en distinta posicion en el nuevo.
No se si me explico.

Si la antigua, que la primera, es 1,2,3,4,5

La que recibo, que es la segunda para entendernos, 1,2,5,6,7,8

La cadena tercera (a,b,c,d,e) da los valores de la primera cadena

Así al 1->a, 2->b, 3->c , 4->d, 5->e

En la nueva cadena que se forma se cogen los valores de la segunda y si estos no existen se inserta un uno

As,i si recibo lo que había dicho 1,2,5,6,7,8
me debería resultar una cadena que fuera

a,b,e,1,1,1 ya que al 1 le correspodía la a, al 2 la b, al 5 la e y el 6,7,8 no estaban por lo cual se inserta un uno.

No se si se entiende



Código PHP:
$car=explode(",""1,2,3,4,5");// cadena 1 anterior
$tar=explode(",""a,b,c,d,e");// cadena tres de valores
$compexplode(",""1,2,5,6,7,8");// cadena nueva
if(count($tar)>count($comp)){// busco cual es mas larga
$mayor=count($tar);
   }else{
$mayor=count($comp);
}
for(
$i=0$i<$mayor$i++){
   if(
$comp[$i]==$car[$i]){
      
$resultado.=",".$tar[$i];// si los valores por posicion son iguales uno el valor anterior
   
}else{
      
$resultado.=",1"// si no es igual pongo un uno
      
for($j=$i$j<$mayor$j++){// comparo este valor con los siguientes
         
if($comp[$i]==$car[$j]){
         
$resultado.=",".$tar[$j];// si coincide sumo el valor, y aqui debería ver si 
//el siguiente ($comp[$i+1])es igual al siguiente ($car[$j+1]). 
//Si lo es uno, si no lo es debería comparar ($comp[$i+1]) 
//con ($car[$j+2]) y así hasta terminar. 
     
}
  }
}
}
echo 
$resultado

Última edición por pennyjou; 01/06/2010 a las 04:35