Eso es asì por què no recorres lo que file() te entrega que es un array .. de esa forma lo que tendràs que generar es un array bidimensional tipo
$datos['campo1'][0]
$datos['campoN'][0]
$datos['campo1'][1]
$datos['campoN'][1]
$datos['campo1'][N]
$datos['campoN'][N]
Podrìas generar dicho array bidimensional tipo:
Código PHP:
$archivo=file("blabla.txt");
$n=0;
foreach ($archivo as $registro){
$campo=explode("|",$registro);
$datos['campo1'][$n]=$campo[0];
$datos['campo2'][$n]=$campo[1];
// etc
$n++;
}
Pero para todo esto ya tienes las funciones como fgetcsv() y afines para leer ese tipo de archivos con esa estructura sin tanto explode() ...
http://www.php.net/manual/en/function.fgetcsv.php
Un saludo,