Foros del Web » Programando para Internet » PHP »

Sacar variables de explode

Estas en el tema de Sacar variables de explode en el foro de PHP en Foros del Web. Hola. Si tengo $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode(" ", $pizza); print $pieces[0]; // piece1 print $pieces[1]; // piece2 Entiendo ...
  #1 (permalink)  
Antiguo 31/03/2005, 18:19
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 8.954
Antigüedad: 14 años, 9 meses
Puntos: 1802
Sacar variables de explode

Hola.

Si tengo

$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
print $pieces[0]; // piece1
print $pieces[1]; // piece2

Entiendo que me genera una especie de Array lineal.

¿Y si tengo que $pizza es un archivo de texto:
piece1 piece2 piece3
piece4 piece5 piece6
piece7 piece8 piece9

¿Cómo puedo generar un Array de 2 dimensiones para tener:
print $pieces[1][1]; // piece5
?
  #2 (permalink)  
Antiguo 31/03/2005, 21:44
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 16 años, 1 mes
Puntos: 2
Podrias hacer esto:

Código:
$Lineas = explode("\n", $El_archivo);
for ($x=0; $x < count($Lineas); $x++){
    $pieces = explode(" ", $linea[$x]);
     for (i=0; i < count($pieces); i++){
          $array[$x][] = pieces[$i];
     }
}
No lo probe pero deberia ser por ahi...
__________________
JmN

Última edición por jmn2k1; 31/03/2005 a las 21:50
  #3 (permalink)  
Antiguo 01/04/2005, 10:08
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 8.954
Antigüedad: 14 años, 9 meses
Puntos: 1802
Gracias, a ver...
Código PHP:
$Lineas explode("\n"$El_archivo);
for (
$x=0$x count($Lineas); $x++){
    
$pieces explode(" "$linea[$x]);
     for (
i=0count($pieces); i++){
          
$array[$x][] = pieces[$i];
     }

Preguntas:
1) la variable $linea ¿por que es diferente a $Lineas?, no debería ser la misma?

2) Tengo una atrasada, para for siempre veo que se usa $i, supongo que en realidad
for (i=0; i < count($pieces); i++){
es
for ($i=0; $i < count($pieces); $i++){
pero es por pura convención usar $i?, ¿se puede usar en realidad $z digamos, o significa integer?

3) y esta linea no entiendo la asignación.
$array[$x][] = pieces[$i];
¿Completa el $array[$x][], metiendole la $i ?.

Una reformulación a ver si le entiendo mejor,
Código PHP:
$Lineas explode("\n"$El_archivo);
for (
$y=0$y count($Lineas); $y++){
    
$pieces explode(" "$linea[$y]);
     for (
$x=0$x count($pieces); $x++){
          
$array[$y][] = pieces[$x];
     }
}

print 
$array[2][2
¿Se podrán asignar esas variables?


Última edición por Rafael; 01/04/2005 a las 10:10
  #4 (permalink)  
Antiguo 01/04/2005, 10:41
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
Asi parece esta bien (no testeado).

Con respecto a lo del $i, $z, $wowww.... pues eso, dento del for() usas cualquier variable. $i no necesariamente se refiere a un entero.

Para simplificar el codigo te sugiero...
Código PHP:
$lineas file($path_al_archivo);
$lineas array_map("trim"$lineas);  // para limpiar posibles espacios es blanco al final 
cada linea
foreach ($lineas as $cada_linea) {
     
$arr[] = explode(" "$cada_linea);


Saludos
  #5 (permalink)  
Antiguo 01/04/2005, 10:46
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
Cita:
3) y esta linea no entiendo la asignación.
$array[$x][] = pieces[$i];
¿Completa el $array[$x][], metiendole la $i ?.
Si a una variable, la finalizas con corchetes ( '[]' ) significa es se trata de un array, que el valor que asignes en ese caso se incluira como ultimo elemento.
Por Ejemplo..
Código PHP:
$arr[] = "primero";
$arr[] = "segungo";
$arr[] = "tercero"
Sera lo mismo que....
Código PHP:
$arr[0] = "primero";
$arr[1] = "segungo";
$arr[2] = "tercero"
En la documentacion de array_push() quizas lo ves mas claro.
http://www.php.net/manual/en/function.array-push.php
  #6 (permalink)  
Antiguo 01/04/2005, 11:16
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 8.954
Antigüedad: 14 años, 9 meses
Puntos: 1802
Gracias mil a ambos. :D
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 08:14.