Foros del Web » Programando para Internet » PHP »

Filtrar array de objetos

Estas en el tema de Filtrar array de objetos en el foro de PHP en Foros del Web. Que tal amigos, espero me puedan ayudar con éste problema. Tengo un array de objetos con la siguiente estructura: Array ( [0] => ArrayObject Object ...
  #1 (permalink)  
Antiguo 13/09/2011, 08:58
 
Fecha de Ingreso: septiembre-2011
Ubicación: México D.F.
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Filtrar array de objetos

Que tal amigos, espero me puedan ayudar con éste problema.
Tengo un array de objetos con la siguiente estructura:

Array
(
[0] => ArrayObject Object
(
[x] => 12
[xx] => 1312779600
[xxx] => 1312779600
[xxxx] => 1312779600
[xxxxx] => LG
[xxxx] => ESTADO1
)

[1] => ArrayObject Object
(
[x] => 100
[xx] => 1312779600
[xxx] => 1312779600
[xxxx] => 1312779600
[xxxxx] => LG
[xxxx] => ESTADO2
)

[2] => ArrayObject Object
(
[x] => 12
[xx] => 1312779600
[xxx] => 1312779600
[xxxx] => 1312779600
[xxxxx] => LG
[xxxx] => ESTADO1
)
)

Lo que intento hacer es que al recorrer el array, filtrarlo para armar un nuevo array de objetos con sin los valores repetidos:

Código PHP:
Ver original
  1. foreach($array as $key=>$obj) {
  2.    $arrayBucle[] = $obj->x;
  3.    if (!in_array("'".$obj->x."'",$arrayBucle)) {
  4.       $array2[] = (object)(array(
  5.         "x"=>$obj->x,
  6.         "xx"=>$obj->xx,
  7.         "xxx"=>$obj->xxx,
  8.         "xxxx"=>$obj2->xxxx,
  9.         "xxxxx"=>$obj->xxxxx,
  10.         "xxxxxx"=>$obj->xxxxxx));
  11.    }
  12. }

El hecho es que de ésta manera no funciona , espero que alguién me pueda ayudar, en verdad lo agradecería. De ante mano muchas gracias amigos!!!
  #2 (permalink)  
Antiguo 13/09/2011, 09: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: Filtrar array de objetos

La pregunta aquí es, ¿porque le concatenas comillas a tu variable en la comparación?

Además carece de sentido lo que haces, pues primero agregas el elemento al array y luego preguntas si no existe en dicho array.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/09/2011, 09:16
 
Fecha de Ingreso: septiembre-2011
Ubicación: México D.F.
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Filtrar array de objetos

ok, podríamos omitir la concatenación de comillas, y lo que intento hacer al agregar el elemento y después preguntar si lo lleva es precisamente filtar el array para que en $array2 sólo agregue los elementos no repetidos. Me explico???
  #4 (permalink)  
Antiguo 13/09/2011, 09:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Filtrar array de objetos

¿Pero si entiendes lo que dices?

Supongo que sería mas lógico preguntar primero si ya existe, y si no existe pues agregas el elemento... ¿por qué hacerlo al revés?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 13/09/2011, 11:57
 
Fecha de Ingreso: septiembre-2011
Ubicación: México D.F.
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Filtrar array de objetos

Bueno, logré resolverlo.
Hice el filtrado de datos desde el query, ya que la información del array viene desde una BD y de ésta manera me evité tener que filtrar el array.

Etiquetas: filtrar, 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 20:38.