Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/01/2006, 17:54
plus_ultra
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 18 años, 4 meses
Puntos: 0
varias cosas:

Código:
//innecesario
$file = "concordancias.txt";
$arr = file($file);

//manera corta
$concordancias = file( 'concordancias.txt' );

/*con todo respeto, esto esta pésimo. por cada valor de concordancias guardas el mismo fichero. todos usan $i, y $j para iterar, porque tú no?. cuando recorres segun el tamaño de un arreglo es mas rápido calcular su tamaño y guardarlo, tú calculas en cada iteración el tamaño, que nunca cambia.*/
for ($x = 0 ; $x < sizeof($arr) ; $x++ ){
$file2 = "numeros.txt";
$arr2 = file($file2);
for ( $z = 0 ; $z < sizeof($arr2) ; $z++ ){
$numerajo = $arr2[$z]; 
$veces=substr_count($arr[$x], $numerajo);
if ($veces > 0){
$valor[$x] = $valor[$x] + 1;
}else{
$valor[$x] = $valor[$x];
}
}
}

//esto puede ser reemplazado por un bucle for
fwrite( $fp, $valor[0]."/".$valor[1]."/".$valor[2]."/".$valor[3]."/".$valor[4]."/". $valor[5]."/".$valor[6]."/".$valor[7]."/".$valor[8]."/".$valor[9]."/".$valor[10]);
fclose ($fp);

y ahora como lo haria yo

$concordancias = file( 'concordancias.txt' );
$numeros = file ( 'numeros.txt' );
$puntuacion = array();

for ( $i = 0, $n = count ($concordancias); $i < $n; $i++)
{
        for( $j = 0, $m = count( $numeros ); $j < $m; $j++)
        {
             puntuacion[$i] += substr_count( $concordancias[$i], trim( $numeros[$j] ) );
        }
}

$fp = fopen( 'puntos/puntos-seisenas.txt','w');
fwrite( $fp, $puntuacion[0]);

for( $i = 1; $i < $n; $i++)
{
    fwrite( $fp, '/');
    fwrite( $fp, $puntuacion[$i];
}

fclose ($fp);