Código PHP:
function get_user($campo) {
$datos=false;
$ruta = 'file/archivo.php';
$contenido = file_get_contents($ruta);
$lineas = explode('||', $contenido);
foreach ($lineas as $cada_linea) {
$campos = explode('|', $cada_linea);
// Si coincide uno de los tres campos cargamos el array en $datos
if($campo == $campos[1] || $campo == $campos[2]
|| $campo == $campos[3] || $campo == $campos[4])
{
$datos['campo0']=$campos[0];
$datos['campo1']=$campos[1]; $datos['campo2']=$campos[2];
$datos['campo3']=$campos[3]; $datos['campo4']=$campos[4];
break;
}
}
return $datos;
}
Aqui suponia que el array ya esta declarado antes del condicionante al asignarle valores con el explode, pero parece que no es asi ya que aunq funciona bien da este aviso al llamar a la funcion:
Cita:
La linea 37 es la del if y el error lo da el array $campos ya que si pongo ahi la @ no sale el error.Notice: Undefined offset: 1 in C:\blabla\blabla.php on line 37
Notice: Undefined offset: 1 in C:\blabla\blabla.php on line 41
Notice: Undefined offset: 2 in C:\blabla\blabla.php on line 41
Notice: Undefined offset: 3 in C:\blabla\blabla.php on line 42
Notice: Undefined offset: 4 in C:\blabla\blabla.php on line 42
Notice: Undefined offset: 1 in C:\blabla\blabla.php on line 41
Notice: Undefined offset: 2 in C:\blabla\blabla.php on line 41
Notice: Undefined offset: 3 in C:\blabla\blabla.php on line 42
Notice: Undefined offset: 4 in C:\blabla\blabla.php on line 42
He probado con:
- settype($datos_del_usuario, "array");
y metiendo el if en otro if:
- if (is_array($datos_del_usuario))
Pero me sigue dando el aviso. He visto la documentacion del explode y parece estar correcto.
¿Que tengo mal?