hola, la verdad ya no sé que hacer, estoy haciendo un programa que busca coincidencias en un archivo de texto,
son varios arrays ($numeroindice, $grupo1, $duracion) que son los datos extraidos en una linea de texto y el asunto es que primero busco por un numero indice el cual me arroja los resultados ordenados de ese numero indice, pero, los resultados estan repetidos varias veces porque son lineas que pertenecen a ese numero indice.
algo así
numero indice 1
resultados:
dato1
dato2
dato2
dato3
dato1
pero yo necesito hacer esto
numero indice 1
resultados:
dato1
dato2
dato3
y guardar las ubicaciones por cada dato para despues poder sumar la duración de ese dato con ese numero indice.
se supone que debería hacer un for dentro del for que ya tengo hecho en el codigo y lo leería, pero si lo hago da vueltas interminables.
necesito su ayuda.
Código PHP:
<html>
<head>
<title></title>
</head>
<?php
$texto = "en-2-2-1000.txt";
$handle = @fopen($texto, "r");
$array_TgrpA = array();
$array_TgrpB = array();
$array_Nadi142 = array();
$array_Fecha = array();
$array_Hora = array();
$array_Durac = array();
$array_NadiB = array();
$array_number = array();
$arrayRutaA = array();
$arrayRutaB = array();
if ($handle) { ?>
<div align=center>En - 2</div>
<?
while (!feof($handle)) {
$buffer = fgets($handle);
$TgrpA = substr("$buffer",1, 6);
$TgrpB = substr("$buffer",7, 7);
$Nadi142 = substr("$buffer",30, 9);
$Fecha = substr("$buffer",80, 8);
$Hora = substr("$buffer",89, 8);
$Durac = substr("$buffer",98, 5);
$NadiB = substr("$buffer",107, 15);
$number = substr("$buffer", 107, 3); //prefijo primeros 3 numeros
array_push($array_TgrpA, $TgrpA);
array_push($array_TgrpB, $TgrpB);
array_push($array_Nadi142, $Nadi142);
array_push($array_Fecha, $Fecha);
array_push($array_Hora, $Hora);
array_push($array_Durac, $Durac);
array_push($array_NadiB, $NadiB);
array_push($array_number, $number);
}
$array_count_number = array_count_values($array_number); // muestra cuantas veces se repite el mismo valor
$array_keys_number = array_keys($array_count_number); // muestra las llaves de los numeros buscados con $array_count_number
//muestra las llaves de los valores (en este caso son los valores de los numeros repetidos)
function ObtenerUbicaciones($NumeroIndice, $numero)
{
$resultado = array();
for($i = 0; $i < count($numero); $i++)
if($numero[$i] == $NumeroIndice) // Si el numero indice buscado es igual al indice en la posicion actual
$resultado[] = $i; // Agregar la posicion / ubicacion en el resultado.
return $resultado;
}
function ObtenerValores($indice, $numero, $parametro)
{
$resultado = array();
for($i = 0; $i < count($numero); $i++)
if($numero[$i] == $indice) // Si coincide el indice con el numero indice requerido
$resultado[] = $parametro[$i]; // Agregar la palabra correspondiente en el resultado.
return $resultado;
}
for($i = 1; $i <= count($array_count_number); $i += 1)
{
$numeroIndice = current($array_keys_number); //prefijo
next($array_keys_number);
//ubicacion prefijo
$letrasIndiceTgrpA = ObtenerValores($numeroIndice, $array_number, $array_TgrpA);
$letrasIndiceTgrpB = ObtenerValores($numeroIndice, $array_number, $array_TgrpB);
$letrasIndiceDurac = ObtenerValores($numeroIndice, $array_number, $array_Durac);
//valores por prefijo total
//ubicación en TgrpA del prefijo
$count_TgrpA = array_count_values($array_TgrpA);
$array_keys_TgrpA = array_keys($count_TgrpA); //TgrpA completo
echo "$numeroIndice"; //prefijo
echo "<br />";
echo "-.-.-.-.-.-.-.-.-.-.-.-.-.-";
echo "<br />";
//ordenar TgrpB con respecto a TgrpA = $letrasIndiceTgrpB
foreach($letrasIndiceTgrpA as $key => $val) //muestra ubicacion de TgrpA total
{$letrasIndiceTgrpB_TA [$key] = $letrasIndiceTgrpB[$key];
//echo $letrasIndiceTgrpB_TA [$key]. "<br />";
}
//ordenar duracion con respecto TgrpA = $letrasIndiceDurac
foreach($letrasIndiceTgrpA as $key => $val) //muestra ubicacion de TgrpA total
{$letrasIndiceDurac_TA [$key] = $letrasIndiceDurac[$key];
//echo $letrasIndiceDurac_TA [$key]. "<br />";
}
}
fclose($handle); ?>
<? } ?>
</body>
</html>