bueno, creo q está listo...
Me agarraste desvelado y con ganas de "pi eich pi", no creas q siempre va a ser tan fácil
Código PHP:
<?php
$root1 = "fichero1.txt";
$fp1 = fopen($root1,"r");
$txt1 = fread($fp1,filesize($root1));
fclose($fp1);
// en $txt1 guardé la lista de números
$root2 = "fichero2.txt";
$fp2 = fopen($root2,"r");
$txt2 = fread($fp2,filesize($root2)+1);
fclose($fp2);
// en $txt2 la lista de líneas
$new_txt3 = ""; // después voy a ir agregando los resultados
$nums = explode(chr(13),trim($txt1)); //separo todos los renglones de números en un array
foreach ($nums as $campo => $valor) {
$nums[$campo] = trim(str_replace("-","",$valor)); // le quito los guiones para qeudarme con los números
}
$lines = explode(chr(13),trim($txt2)); // separo las lineas
foreach ($lines as $linea) {
$linea = trim($linea);
$linea = substr($linea,1,strlen($linea) - 2); // en cada linea le saco los caracteres de más
$linea_numeros = explode("-",$linea); // lo separo por los guiones
if (count(array_intersect($linea_numeros,$nums)) == 3) { // si la interseccion entre esta linea y todos los números del fichero 1 es correcta
$diferencia = array_diff($linea_numeros,$nums);
$new_txt3 .= "-".$diferencia[0].$diferencia[1].$diferencia[2].$diferencia[3]."-".chr(13); // me lo agrega a un archivo. La diferencia puede ser en la posicion 0, 1, 2 o 3, pero sólo existe una, así que si concateno todas, me va a devolver la correcta... no es prolijo, pero es efectivo
} else {
//acá si querés hacer algo con las líneas que tienen 4, 2, 1 o 0 "aciertos"
}
}
$fp3 = fopen("fichero3.txt","w+");
fwrite($fp3,$new_txt3); // que escriba eñ fichero3
fclose($fp3);
?>