Es que todo depende, me vas diciendo cosas conforme vamos avanzando y sin tener una visión completa de lo que deseas y como se generan los datos o si siguen unas reglas claras pues es difícil establecer una solución concreta a tu problema.
Si el archivo txt se va a corresponder con la base de datos, de modo que cada línea del archivo se corresponde con un registro en la base de datos y a su vez sus id se correcponden con el número de line en el archivo, puede ser fácil.
Ya que cuando traes el archivo mediante file y generas el array cada clave del array se corresponde con el id de la base de datos (clave_array+1).
Por lo que puedes hacer lo siguiente:
Obtener el último id con un consulta como esta.
Código SQL:
Ver originalSELECT MAX(id) AS id_mas_alto FROM tabla
Y ahora puedes intentar algo como esto:
Código PHP:
Ver original//cortas el array por el id más alto obtenido en la consulta
$filas_pendientes = array_slice($filasP, $id_mas_alto); //desecha el array $filasP para liberar memoria
//realizas tu bucle estableciendo un límite si quieres o no
$i=0;
foreach ($filas_pendientes as $key => $valoresP) {
if ($i>100){return;}
/* código */
}
El único inconveniente es que se deben corresponder las filas del archivo con las de la bd. Y por lo menos no se deberían de borrar nada del archivo.
No lo he probado, por que estoy desde el móvil, pero te puede servir de idea para desarrollar tu Script.