Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿Cómo asignar datos a un Array mediante bucle?

Estas en el tema de ¿Cómo asignar datos a un Array mediante bucle? en el foro de PHP en Foros del Web. Buena noche. La idea es la siguiente. Quiero leer la inf de un archivo .txt que contiene esto: Cita: Frase 1: "Hola". Frase 2: "Hello". ...
  #1 (permalink)  
Antiguo 01/06/2014, 19:30
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Pregunta ¿Cómo asignar datos a un Array mediante bucle?

Buena noche.

La idea es la siguiente. Quiero leer la inf de un archivo .txt que contiene esto:
Cita:
Frase 1: "Hola".
Frase 2: "Hello".
Frase 3: "Hallo".
Y asignar a distintas variables lo que se encuentre dentro de comillas. Eso es todo.

No he llegado tan lejos, y para empezar no sé cómo meter en un array y en un índice diferente el contenido de cada línea obtenida mediante explode():

Código PHP:
$array = array();
$var1 "";

$archivo fopen("archivo.txt""r");

while( !
feof($archivo) )
{
    
$primeraLinea       fgets($archivo);
    
$contenidoExplotado explode('"'$primeraLinea);
    
$lineas             count($contenidoExplotado);

    for (
$i=0$i<$lineas$i++)
    {
        
$array[$var1] = $contenidoExplotado[$i];
    }

Saludos!
  #2 (permalink)  
Antiguo 01/06/2014, 20:11
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cómo asignar datos a un Array mediante bucle?

¿Y si sacas a $var1 de los corchetes del array? También podrías reemplazarla por la $i pues en cada iteración, siempre cambia su valor.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 01/06/2014, 20:36
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Respuesta: ¿Cómo asignar datos a un Array mediante bucle?

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Y si sacas a $var1 de los corchetes del array? También podrías reemplazarla por la $i...
Muy bien, maestro. Efectivamente, reemplazando la $var1 por $i se guardan en el array los datos, pero sólo de la última línea del archivo .txt.

En pantalla se devuelve esto:
Cita:
Array ( [0] => Frase 3: [1] => Hallo [2] => )
¿Y las primeras dos líneas?

Saludos!
  #4 (permalink)  
Antiguo 01/06/2014, 20:46
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cómo asignar datos a un Array mediante bucle?

Mejor quita la $i. Si la colocas, siempre se reemplazarán los valores.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 01/06/2014, 21:01
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: ¿Cómo asignar datos a un Array mediante bucle?

Intenta así:

Código PHP:
Ver original
  1. $archivo = 'texto.txt';
  2.  
  3. $leer = file( $archivo , FILE_IGNORE_NEW_LINES);
  4.  
  5. $array = array();
  6.  
  7. foreach($leer as $l) {
  8.     preg_match_all("|\"(.*)\"|U" , $l , $salida , PREG_PATTERN_ORDER);
  9.     $array[] = $salida[1][0];
  10. }
  11.  
  12. echo '<pre>'. print_r($array , true) .'</pre>';
  #6 (permalink)  
Antiguo 02/06/2014, 02:16
 
Fecha de Ingreso: abril-2013
Mensajes: 61
Antigüedad: 11 años, 1 mes
Puntos: 4
Respuesta: ¿Cómo asignar datos a un Array mediante bucle?

Considerando que dentro de las primeras comillas, esta el contenido, que quieres sacar, lo puedes hacer asi:


Código PHP:
Ver original
  1. $array = array();
  2. $var1 = "";
  3.  
  4. $archivo = fopen("archivo.txt", "r");
  5.  
  6. while( !feof($archivo) )
  7. {
  8.     $primeraLinea       = fgets($archivo);
  9.     $contenidoExplotado = explode('"', $primeraLinea);
  10.     $array[] = $contenidoExplotado[1];
  11.    
  12.    
  13. }
  #7 (permalink)  
Antiguo 02/06/2014, 06:55
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Respuesta: ¿Cómo asignar datos a un Array mediante bucle?

Pfff, metacortex, ese código está excelente, .

¿Es posible que puedas explicarlo?

Última edición por berkeleyPunk; 02/06/2014 a las 07:00
  #8 (permalink)  
Antiguo 02/06/2014, 11:15
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cómo asignar datos a un Array mediante bucle?

No sé tú, metacortex, pero también hubiera quedado bien dejándolo así:

Código PHP:
Ver original
  1. $array = file('archivo.txt' , FILE_IGNORE_NEW_LINES);

De esa forma, $array contendrá cada fila del archivo de texto, asignadas a cada posición equivalente del mismo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:49.