Aunque no siempre es necesario hacer esto (generar un tremendo array bidimensional)... pues si lo que quieres es hacer una autentificación del usuario o una búsqueda, lo puedes hacer directamente en el foreach:
De esa manera la ejecución del foreach termina al encontrar lo que buscas y no tendrá que recorrer todas las líneas necesariamente.
Código PHP:
// supongamos que sólo queremos los datos del usuario que tiene como login = "login3"
$lineas = file("usuarios.txt");
$registro = array();
foreach($lineas as $linea){
$registro = explode("|", $linea);
if($registro[0] == "login3")break;
}
// Y $registro ya será un array unidimensional con los datos del usuario buscado.
// O un array vacío si no se encontró.
if(empty($registro)){
echo "No se encontró el usuario";
}else{
echo "usuario encontrado<br />\n";
echo "login :".$registro[0]."<br />\n";
echo "password :".$registro[1]."<br />\n";
echo "cfg :".$registro[2]."<br />\n";
echo "razón social :".$registro[3]."<br />\n";
}
Saludos