Ir al contenido


Foto

Problema al crear un array


  • Por favor identifícate para responder
1 respuesta en este tema

#1 jonbra

jonbra

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 mensajes

Escrito 19 septiembre 2013 - 01:23

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 mensajes
  • LocationMy House @ México

Escrito 25 septiembre 2013 - 08:53

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.