Foros del Web » Programando para Internet » PHP »

Manejar array de objetos

Estas en el tema de Manejar array de objetos en el foro de PHP en Foros del Web. Hola, podrían ayudarme con una duda de concepto. Para manejar un array de objetos, que sería $prueba = array ( => obj(), => obj(), ... ...
  #1 (permalink)  
Antiguo 07/06/2012, 05:16
 
Fecha de Ingreso: noviembre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Manejar array de objetos

Hola, podrían ayudarme con una duda de concepto. Para manejar un array de objetos, que sería

$prueba = array (
=> obj(),
=> obj(),
...
)

Rellenado con un foreach, y pasandole objetos con doctrine de symfony2, esto no es relevante, solo lo comento, porque si uso el findOneByname, me da un objeto y no un array; y se que esuna solucion posible, pero me gustaria saber como resolverlo como array:

Código:
$prueba = $em->getRepository('MistakesTestBundle:Error')->findByName($error['name']);
Al hacer var_dump me queda esto:

Cita:
array(1) { [0]=> object(Mistakes\MistakesTestBundle\Entity\Error)#2 89 (4) { ["id":"Mistakes\MistakesTestBundle\Entity\Error":pr ivate]=> int(235) ["ab_id":"Mistakes\MistakesTestBundle\Entity\Error" :private]=> int(64434) ["name":"Mistakes\MistakesTestBundle\Entity\Error": private]=> string(10) "Bancontact" ["cont":"Mistakes\MistakesTestBundle\Entity\Error": private]=> int(213) } } array(1) { [0]=> object(Mistakes\MistakesTestBundle\Entity\Error)#2 91 (4) { ["id":"Mistakes\MistakesTestBundle\Entity\Error":pr ivate]=> int(236) ["ab_id":"Mistakes\MistakesTestBundle\Entity\Error" :private]=> int(65378) ["name":"Mistakes\MistakesTestBundle\Entity\Error": private]=> string(19) "ClubBrugge-facebook" ["cont":"Mistakes\MistakesTestBundle\Entity\Error": private]=> int(0) } } array(1) { [0]=> object(Mistakes\MistakesTestBundle\Entity\Error)#2 87 (4) { ["id":"Mistakes\MistakesTestBundle\Entity\Error":pr ivate]=> int(237) ["ab_id":"Mistakes\MistakesTestBundle\Entity\Error" :private]=> int(64514) ["name":"Mistakes\MistakesTestBundle\Entity\Error": private]=> string(5) "FACTV" ["cont":"Mistakes\MistakesTestBundle\Entity\Error": private]=> int(2) } } array(1) { [0]=> object(Mistakes\MistakesTestBundle\Entity\Error)#2 83 (4) { ["id":"Mistakes\MistakesTestBundle\Entity\Error":pr ivate]=> int(238) ["ab_id":"Mistakes\MistakesTestBundle\Entity\Error" :private]=> int(52497) ["name":"Mistakes\MistakesTestBundle\Entity\Error": private]=> string(17) "Kunstmaan Sandbox" ["cont":"Mistakes\MistakesTestBundle\Entity\Error": private]=> int(18) } } array(1) { [0]=> object(Mistakes\MistakesTestBundle\Entity\Error)#2 85 (4) { ["id":"Mistakes\MistakesTestBundle\Entity\Error":pr ivate]=> int(239) ["ab_id":"Mistakes\MistakesTestBundle\Entity\Error" :private]=> int(71158) ["name":"Mistakes\MistakesTestBundle\Entity\Error": private]=> string(15) "KustZe Facebook" ["cont":"Mistakes\MistakesTestBundle\Entity\Error": private]=> int(0) } } array(1) { [0]=> object(Mistakes\MistakesTestBundle\Entity\Error)#2 81 (4) { ["id":"Mistakes\MistakesTestBundle\Entity\Error":pr ivate]=> int(240) ["ab_id":"Mistakes\MistakesTestBundle\Entity\Error" :private]=> int(77742) ["name":"Mistakes\MistakesTestBundle\Entity\Error": private]=> string(5) "POPiK" ["cont":"Mistakes\MistakesTestBundle\Entity\Error": private]=> int(0) } } array(1) { [0]=> object(Mistakes\MistakesTestBundle\Entity\Error)#2 77 (4) { ["id":"Mistakes\MistakesTestBundle\Entity\Error":pr ivate]=> int(241) ["ab_id":"Mistakes\MistakesTestBundle\Entity\Error" :private]=> int(72930) ["name":"Mistakes\MistakesTestBundle\Entity\Error": private]=> string(12) "Telenet GWOF" ["cont":"Mistakes\MistakesTestBundle\Entity\Error": private]=> int(0) } } array(1) { [0]=> object(Mistakes\Mi... etc

Mi pregunta es, cómo podría acceder al [cont] del objeto error, si tengo perfectamente configurado mis Getters and Setters?
$prueba->setCont('X'])

Así no funciona porque $prueba es un array, no es un objeto en si, como accedo pues a ese vqlor, es mi pregunta, es puramente un error de concepto que no he entendido al tratar arrays de objetos.
Muchas gracias.
  #2 (permalink)  
Antiguo 07/06/2012, 05:26
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Respuesta: Manejar array de objetos

Me he liado un poco viendo el var_dump, asi que mas o menos te voy a responder en funcion de "array de objetos".

Un array es un listado de lo que tu quieras, por lo que si es un array de objetos, en cada elemento de la lista tienes un objeto.


Si quieres acceder a algun valor de un objeto en concreto, tienes que saber en que posicion de la lista en el array esta ese objeto.

Es decir, si quieres acceder a "setCont(valor)" del objeto 37, deberias hacer:

$array[37]->setCont(valor) ;


Espero que mas o menos te haya quedado claro =)
__________________
» Presupuesto Pagina Web
  #3 (permalink)  
Antiguo 07/06/2012, 05:42
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Manejar array de objetos

Me cuesta creer que utilizando herramientas como Symfony o Doctrine no tengas claro como acceder a un elemento de un array, te sugiero que leas el manual de PHP para que veas como trabajar con array's porque estamos hablando de cosas básicas.
De todas formas no se exactamente como generas la estructura que estas dumpeando pero es un array que tiene en el indice 0 un Entity.

Código PHP:
Ver original
  1. $arr[0]->setCont(1);

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: manejar, objetos
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 11:46.