Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/09/2014, 12:35
Avatar de javier6_almansa
javier6_almansa
 
Fecha de Ingreso: mayo-2014
Mensajes: 34
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Buscar valores repetidos en 2 archivos txt

Cita:
Iniciado por teudiss Ver Mensaje
Hola, tengo dos archivos txt el primero contiene 5.000 referencias numericas con esta estructura:

100
200
300
400
...
4.000
5.000

el segundo contiene codigo html y puede o no puede tener los datos del primer txt.

Necesito recorrer el primer archivo, no se que es mejor si linea a linea o pasarlo a un array separado por comas y luego comparar cada una de las referencias numericas con el segundo archivo. si encuentra coincidencia...me gustaria ir introduciendolos en un array, tengo el siquiente codigo, creo que no voy por buen camino, a ver si me podeis ayudar.

Código PHP:
  $contenido_referencias = ('cache/referencias.txt');     // contiene referencias    
 
$contenido_html file('cache/html.txt');    //contiene codigo html
     
foreach ($contenido_referencias as $cuales)
{
             
             list() = 
explode(",",$cuales);
             
$igual array_search $cuales$contenido_html ); 
               if ( 
$igual 
               { 
                  echo 
"resultado";  // aqui voy introduciendo las referencias en un array[].
                   

            } 

Creo que lo mejor es crearte dos array y en cada uno poner las referencias ( con explode o como lo tengas separado en el txt), luego recorres el primer array con un for, y dentro recorres el segundo, y vas comparando referencias:

Código PHP:

$referencias1 
= array();
$referencias2 = array();

// Añades las referencias de cada archivo a su correspondiente array

// .....

// Y los recorres guardando los valores duplicados en otro array

$duplicados = array();

foreach(
$referencias1 as $referencia1){
       foreach(
$referencias2 as $referencia2){
               if(
$referencia1 == $referencia2){
                     
$duplicados[] = referencia2;
               }
       }