Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con bucle for y array

Estas en el tema de Problema con bucle for y array en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente codigo: Código: while($fila = $resultado->fetch_array($type_array)){ if(is_array($name_fila)){ for ($i = 0; $i <= count($name_fila)-1; $i++) { $filas[] = [ $name_fila[$i] ...
  #1 (permalink)  
Antiguo 11/09/2015, 11:59
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 9 años, 8 meses
Puntos: 1
Problema con bucle for y array

Hola a todos, tengo el siguiente codigo:
Código:
while($fila = $resultado->fetch_array($type_array)){
 if(is_array($name_fila)){
  for ($i = 0; $i <= count($name_fila)-1; $i++) {
   $filas[] = [
    $name_fila[$i] => $fila[$name_fila[$i]]
   ];
  }				
 }
}
Y me devuelve un array de esta forma:

Array (
[0] => Array ( [id_user] => 3 )
[1] => Array ( [nombre_usuario] => Juan79 )
[2] => Array ( [nombre] => Juan )

[3] => Array ( [id_user] => 5 )
[4] => Array ( [nombre_usuario] => Luis98 )
[5] => Array ( [nombre] => Luis )
)

El caso es que quería que me devolviese algo tipo:

Array (
[0] => Array (
[id_user] => 3
[nombre_usuario] => Juan79
[nombre] => Juan
)

[1] => Array (
[id_user] => 5
[nombre_usuario] => Luis98
[nombre] => Luis
)
)

Gracias a todos, un saludo
  #2 (permalink)  
Antiguo 11/09/2015, 12:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con bucle for y array

Tu error está aquí:
Código PHP:
Ver original
  1. $filas[] = [
  2.     $name_fila[$i] => $fila[$name_fila[$i]]
  3. ];

Ahí creas un sub-array por cada columna.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 11/09/2015 a las 12:08
  #3 (permalink)  
Antiguo 11/09/2015, 12:08
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: Problema con bucle for y array

Cita:
Iniciado por pateketrueke Ver Mensaje
Tu error está aquí:
Código PHP:
Ver original
  1. $filas[] = [
  2.     $name_fila[$i] => $fila[$name_fila[$i]]
  3. ];

Ahí creas un sub-array por cada columna. .borracho:
Hola, gracias por responder, si, ya se que mi error esta ahi de hecho intente hacer lo siguiente:

Código:
while($fila = $resultado->fetch_array($type_array)){
 if(is_array($name_fila)){
   $filas[] = [
    for ($i = 0; $i <= count($name_fila)-1; $i++) {
     $name_fila[$i] => $fila[$name_fila[$i]]
    }	
   ];			
 }
}
Bueno pero no puedo poner el bucle for dentro del array y ahi me quedo pillado
  #4 (permalink)  
Antiguo 11/09/2015, 12:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con bucle for y array

Primero, antes de agregar el nuevo array a $filas deberías crear un array auxiliar:
Código PHP:
Ver original
  1. $aux = [];
  2.  
  3. // for ...
  4.  
  5. $filas []= $aux;
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/09/2015, 12:19
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: Problema con bucle for y array

Cita:
Iniciado por pateketrueke Ver Mensaje
Primero, antes de agregar el nuevo array a $filas deberías crear un array auxiliar:
Código PHP:
Ver original
  1. $aux = [];
  2.  
  3. // for ...
  4.  
  5. $filas []= $aux;
perdona mi ignorancia, pero no consigo entender el array auxiliar. Podrias ponerme un ejemplo un poco mas para tontos?
  #6 (permalink)  
Antiguo 11/09/2015, 12:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con bucle for y array

A ver tu problema está aquí:
Código PHP:
Ver original
  1. for ($i = 0; $i <= count($name_fila)-1; $i++) {
  2.    $filas[] = [
  3.     $name_fila[$i] => $fila[$name_fila[$i]]
  4.    ];
  5.   }

Debería ser así:
Código PHP:
Ver original
  1. $auxiliar = [];
  2.  
  3. for ($i = 0; $i <= count($name_fila)-1; $i++) {
  4.    $auxiliar[$name_fila[$i]] = $fila[$name_fila[$i]];
  5. }
  6.  
  7. $filas []= $auxiliar;

La idea es que dicho array auxiliar sea temporal, lo rellenas con los datos de tu otro array, y cuando esté completo entonces lo agregas a tu array final.

¿Ya se entiende la idea?

Lo que al final parece que no es necesario, porque bien podrías sólo agregar el array directamente:

Código PHP:
Ver original
  1. $filas []= $fila;
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 12/09/2015, 07:01
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: Problema con bucle for y array

Cita:
Iniciado por pateketrueke Ver Mensaje
A ver tu problema está aquí:
Código PHP:
Ver original
  1. for ($i = 0; $i <= count($name_fila)-1; $i++) {
  2.    $filas[] = [
  3.     $name_fila[$i] => $fila[$name_fila[$i]]
  4.    ];
  5.   }

Debería ser así:
Código PHP:
Ver original
  1. $auxiliar = [];
  2.  
  3. for ($i = 0; $i <= count($name_fila)-1; $i++) {
  4.    $auxiliar[$name_fila[$i]] = $fila[$name_fila[$i]];
  5. }
  6.  
  7. $filas []= $auxiliar;

La idea es que dicho array auxiliar sea temporal, lo rellenas con los datos de tu otro array, y cuando esté completo entonces lo agregas a tu array final.

¿Ya se entiende la idea?

Lo que al final parece que no es necesario, porque bien podrías sólo agregar el array directamente:

Código PHP:
Ver original
  1. $filas []= $fila;
Hola, si lo entendí, es bastante simple. Gracias

Etiquetas: bucle
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 00:51.