PHP - Iterar 2 veces para ir comparando dentro de archivo de texto PHP

 
Vista:

Iterar 2 veces para ir comparando dentro de archivo de texto PHP

Publicado por GhostLT (1 intervención) el 26/02/2017 17:35:40
Buen día,

Actualmente me encuentro recorriendo un archivo de texto con el siguiente código, mi problema es que necesito ir comparando si la linea 1 se repite n veces las sume todas, para mi seria facil con un for solo que no tengo idea como cambiarlo por este porque no tengo el numero de lineas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$num_lineas = 0;
$archivo = fopen("test.txt","r");
 
if ($archivo) {
    while(!feof($archivo)){
      //cargo un arreglo de la linea en donde esta el puntero
      $linea = fgets($archivo);
      //separo el arreglo por comas
      $contenido=explode(",",$linea);
       //muestro el contenido 1 donde es el nombre y contenido 2 es la cantidad                                                                                                                                                                                           
         //acumulo una en la variable número de líneas
         $num_lineas++;
    }
 
}
//aqui imprimo la cantidad de lineas que existen en el archivo de texto
echo "Lineas: " . $num_lineas . "<br>";
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Iterar 2 veces para ir comparando dentro de archivo de texto PHP

Publicado por Alejandro (157 intervenciones) el 27/02/2017 01:21:13
Hola GhostLT, no estoy seguro si es lo que buscas pero intenta con esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
$num_lineas = 0;
$iguales = 0;
$archivo = fopen("test.txt","r");
$first_line = fgets($archivo);
fseek($archivo, 0); // muevo el puntero al inicio del archivo
 
// Recupero el numero de lineas
if ($archivo) {
    while(false != ($linea = fgets($archivo))){
        $num_lineas++;
    }
}
 
fseek($archivo, 0);
// Comparo la primera linea
if ($first_line) {
    $i = 0;
    while(false != ($linea = fgets($archivo))){
        if ($i >= 1 && $linea == $first_line) {
            $iguales++;
        }
        $i++;
    }
}
fclose($archivo);
 
echo "<br>Lineas: $num_lineas<br>";
echo "El numero de lineas iguales es: $iguales";

Avisano si te sirvio. Un Saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Iterar 2 veces para ir comparando dentro de archivo de texto PHP

Publicado por kip (877 intervenciones) el 27/02/2017 01:50:58
Hola, si solo deseas obtener el numero de veces que se repite la linea 1 y ademas el numero de lineas del archivo podrias hacerlo asi:

1
2
3
4
5
6
7
8
<?php
$archivo = file('test.txt');
$nums_lineas = count($archivo);
$rept_linea_1 = 0;
foreach ($archivo as $linea) {
	if ($archivo[0] === $linea) $rept_linea_1 += 1;
}
echo "Lineas => {$nums_lineas} - Linea 1 se repite {$rept_linea_1}";

Es eso lo que buscas? O necesitas saber cuantas veces se repite cada linea del archivo?

Nos cuentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar