Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/09/2013, 18:25
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: problema al crear un array

Cita:
Iniciado por Triby Ver Mensaje
Lo único que no acaba de convencerme es que por cada iteración de los amigos recorres todos los seguidores. Se me ocurre que podrías crear un array de amigos con solo el nombre, algo como:

Código PHP:
Ver original
  1. $this->result = array();
  2.  
  3. // Creas el array de amigos
  4. $friends = array();
  5. foreach($stdclassfriends as $key) {
  6.        $friends[] = $key->name;
  7. }
  8.  
  9. // Recorres solo una vez el de seguidores
  10. foreach($stdclassfollowers as $key) {
  11.       // Si existe en amigos, lo agregas al resultado
  12.       if(in_array($key->name, $friends)) {
  13.               // Con array push
  14.               array_push($this->result, array($key->name, 'otro dato', 'otro dato', 'bla bla bla'));
  15.               // O con asignación directa
  16.               $this->result[] = array($key->name, 'otro dato', 'otro dato', 'bla bla bla');
  17.       }
  18. }
Ha funcionado a la primera

Simplemente me he llevado dos satisfacciones, haberlo podido resolver y además gracias a ti he aprendido una nueva manera de iterar para contrastar.

Lo de anidar dos foreach es como me enseñaron a hacerlo.

Jamás se me habría ocurrido la manera como tú lo has hecho.

Muchas gracias, mil gracias!!! :D

EDITO

Ahora al hacer pruebas posteriores sobre por qué mi código no funcionaba (soy así de cabezota, me gusta entender el máximo que pueda de cada cosa del código :P ), resulta que era por la siguiente línea

Código PHP:
Ver original
  1. $this->result = array_unique( $this->result );

No entiendo por qué, se supone que eso es para quitar cualquier duplicado dentro del array, en este caso es para asegurarme de que no haya de ninguna manera datos duplicados, pero tiene ese efecto y no lo entiendo :S
__________________
Ayúdame a hacerlo por mi mismo.

Última edición por guardarmicorreo; 19/09/2013 a las 18:31