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
$comp= explode(",", "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;