Foros del Web » Programando para Internet » PHP »

PHP OO array asociativo en 1 variable despues de la consulta

Estas en el tema de array asociativo en 1 variable despues de la consulta en el foro de PHP en Foros del Web. Hola amigos, necesito ayuda URG la historia es esta: Necesito meter varios valores en una sola variable array, como esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver ...
  #1 (permalink)  
Antiguo 05/03/2012, 02:39
Avatar de ilen  
Fecha de Ingreso: febrero-2009
Mensajes: 125
Antigüedad: 15 años, 2 meses
Puntos: 2
Pregunta array asociativo en 1 variable despues de la consulta

Hola amigos, necesito ayuda URG la historia es esta:

Necesito meter varios valores en una sola variable array, como esto:

Código PHP:
Ver original
  1. $days = array( 3=>"algo",
  2.                          4=>"algo2",
  3.                          5=>"algo3");

la variable $days contiene 1 array asociativo, ahora cuando realizo una consulta MYSQL y al tener los datos estoy haciendo algo como esto:
Código PHP:
Ver original
  1. foreach($r as $k){
  2.             $days[] = array($k->dia=>$k->tema);
  3.         }

pero no es lo mismo ya que estoy poniendo el resultado en varias localidades del array $days[] que lo coloca en cada localidad, y si hago esto
Código PHP:
Ver original
  1. foreach($r as $k){
  2.             $days = array($k->dia=>$k->tema);
  3.         }

tampoco lo almacena todo solo el ultimo registro, espero ser claro lo que yo necesito esque quede el resultado de la consulta algo como esto:
Código PHP:
Ver original
  1. $days = array( 3=>"algo",
  2.                          4=>"algo2",
  3.                          5=>"algo3");
que en 1 sola variable tenga varios valores de esa manera, como puedo resolverlo. salu2
  #2 (permalink)  
Antiguo 05/03/2012, 03:52
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: array asociativo en 1 variable despues de la consulta

Para lograr el output que posteas, necesitas esto:

Código PHP:
Ver original
  1. foreach($r as $k){
  2.                 $days[$k->dia] = $k->tema;
  3.             }

aunque no estoy seguro de haber comprendido la pregunta, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 05/03/2012, 13:17
Avatar de ilen  
Fecha de Ingreso: febrero-2009
Mensajes: 125
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: array asociativo en 1 variable despues de la consulta

Gracias 'repara2' por tu respuesta, efectivamente asi era la manera correcta, pero hay un problema por ejemplo, al momento de tener dias repetidos necesito que quede de esta manera
Código PHP:
Ver original
  1. $days = array( 3=>"algo",
  2.                          4=>"algo2",
  3.                          4=>"algo3");
pero de la forma en que planteastes se me pierde el primer valor, y va mostrar el segundo, es decir reemplaza la localidad por el dia =/
  #4 (permalink)  
Antiguo 06/03/2012, 00:27
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: array asociativo en 1 variable despues de la consulta

Si tienes valores repetidos, entonces tienes que crear una clave única por tu cuenta, por ejemplo:
Código PHP:
Ver original
  1. $i = 0;
  2.     foreach($r as $k){
  3.                     $days[$i.$k->dia] = $k->tema;
  4. $i++;                
  5. }

o bien

Código PHP:
Ver original
  1. $i = 0;
  2.     foreach($r as $k){
  3.                     $days[$i][$k->dia] = $k->tema;
  4. $i++;                
  5. }
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 06/03/2012, 12:46
Avatar de ilen  
Fecha de Ingreso: febrero-2009
Mensajes: 125
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: array asociativo en 1 variable despues de la consulta

Gracias 'repara2' me funciono

Etiquetas: asociativo, mysql, registro, variables
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 06:47.