Jump to content


Photo

Problema al crear un array


  • Please log in to reply
1 reply to this topic

#1 jonbra

jonbra

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 posts

Posted 19 September 2013 - 01:23 PM

Tengo el siguiente método, consiste en pasarle dos parámetros atrapados de la API de Twitter. Estos dos parámetros son por un lado la lista de amigos (gente a la que el usuario sigue en twitter) y por el otro lado la lista de seguidores (gente que sigue al usuario).

Para crear una lista consistente de usuarios que vean sus publicaciones entre si tengo que contrastar ambas listas y escoger solamente los usuarios comunes entre las dos listas.


//$this->result está declarada al principio de la clase como private $result = array();
public function gettruefriendslist ( $stdclassfriends, $stdclassfollowers )
{
$a = 1;
foreach ( $stdclassfriends as $key)
{
foreach( $stdclassfollowers as $key2 )
{
if ( $key->name == $key2->name )
{
$b = 1;
$this->result[$a][$b] = $key->id;
$this->result[$a][$b++] = $key->name;
$this->result[$a][$b++] = $key->screen_name;
$this->result[$a][$b++] = $key->profile_background_image_url;
$a++;


}
}
}
$this->result = array_unique( $this->result );

return $this->result;
}


El problema con este método es que solo se graban los datos de un usuario, no de todos los comunes.

No devuelve ningún error, simplemente solo guarda los datos de un usuario.

En cambio, si lo hago de la siguiente manera sí me guarda un dato de cada usuario común. Pero yo quiero guardar varios datos, en un array por cada usuario común.


foreach ( $stdclassfriends as $key)
{
foreach( $stdclassfollowers as $key2 )
{
if ( $key->name == $key2->name )
{
array_push( $this->result, $key->name );
}
}
}



Twitter me retorna los valores como un Object(stdClass) por eso itero como $variable->valor

¿Alguien me puede ayudar a enteder el problema y a solucionarlo?
  • 0

#2 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 posts
  • LocationMy House @ México

Posted 25 September 2013 - 08:53 AM

siento que $a deberia ir fuera del ciclo, pero podrias no utilizar los punteros y hacer algo asi:

      foreach ( $stdclassfriends as $key)
      {
        foreach( $stdclassfollowers as $key2 )
        {
            if ( $key->name == $key2->name )
            {
              $this->result[] = array($key->id, $key->name, $key->screen_name, $key->profile_background_image_url);
            }
        }
      }


Asi aumentara cada vezy guardara un arreglo por indice.
  • 0




IP.Board spam blocked by CleanTalk.