Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Climaco en 23 de Marzo 2015, 18:52

Título: Php Ejercicio CU00836B -Leer Fichero error "Array to string conversion"
Publicado por: Climaco en 23 de Marzo 2015, 18:52
Hola, estoy empezando a estudiar php y estoy atrancado en el tema de leer un fichero y devolverlo en un array, al pedir por pantalla una posición del array me sale error de "Array to string conversión".

Este es el código:

Código: [Seleccionar]
<?phpfunction LeerCrearArr($ruta){$arch=$ruta;$fp = fopen($arch,"r");$cont=0;while(!feof($fp)){		$linea = fgets($fp);		$Arr[$cont]=array($linea);		$cont1=$cont+1;		$cont=$cont1;		}return $Arr;}$resul= LeerCrearArr('C://wamp/www/Ejemplos/Parte 4\EscrN.txt');echo count($resul);echo 'El contenido de la posición 0 es:  ' . $resul[0];echo 'El contenido de la posición 1 es:  ' . $resul[1];echo 'El contenido de la posición 2 es:  ' . $resul[2];						?>

Gracias por su ayuda
Título: Re:Php Ejercicio CU00836B -Leer Fichero error "Array to string conversion"
Publicado por: Ogramar en 23 de Marzo 2015, 21:37
Hola, hay varias cosas que deberías mejorar. Una es no escribir líneas que no sean necesarias o utilizar variables simplemente como transmisoras de valores.

$arch=$ruta; no hace nada útil, por tanto mejor trabajar con $ruta directamente

Esto también es no útil:

$cont1=$cont+1;
$cont=$cont1;

Ahí debes trabajar directamente con $cont, añadir más variables no resulta útil.

Esto está mal planteado: $Arr[$cont]=array($linea);, estás creando una definición según la cual cada elemento de $Arr es un array a su vez

Este código puede ser una solución:

Código: [Seleccionar]
<?phpfunction LeerCrearArr($ruta){$fp = fopen($ruta,"r");$cont=0;while(!feof($fp)){		$linea = fgets($fp);		$Arr[$cont]=$linea;		$cont=$cont+1;		}return $Arr;}$resul= LeerCrearArr('prueba.txt');echo 'Hay '.count($resul). ' elementos en el array <br/>';for($i=0; $i<count($resul);$i++){echo 'El contenido de la posicion'. $i .' es:  ' . $resul[$i].'<br/>';}?>

Salu2