PHP trouver le tableau de la clé d'index de multiples dimensions de la matrice de mise à jour de la matrice de
Je suis essayant de trouver un moyen de travailler avec ce qui pourrait potentiellement être très grande variété de décors. Ce que je suis en train de faire est de travailler avec le facebook graph api.
Ainsi, lorsqu'un utilisateur s'inscrit à un service que je suis, j'en magasin leur facebook id dans une table, dans mon service. Le but de cela est de permettre à un utilisateur qui s'inscrit à mon service pour trouver des amis, de leurs qui sont sur facebook et qui ont aussi signé par mon service pour en trouver un autre plus facile.
Ce que je suis en train de faire actuellement, c'est de prendre l'objet que l'facebook api retourne pour la /me/friends
de données et passer à une fonction que j'ai de la création d'une requête à ma DB pour le code trouvé dans le FB de données qui fonctionne très bien. Aussi, tout ce bit tout se passe j'ai un tableau de la juste facebook id du bâtiment pour que je puisse les utiliser dans une in_array
scénario. Que ma requête ne renvoie facebook id correspond à
Bien que ces données est une boucle sur lui-même pour créer la requête j'ai aussi mettre à jour l'objet contient le plus de paires clé/valeur par des éléments de la liste qui est "are_friends"=> false
jusqu'à présent à ce point tout cela fonctionne en douceur et relativement rapide, et j'ai mes résultats de la requête. Qui je suis en boucle sur.
Je suis donc à une partie où je veux éviter d'avoir une boucle dans une boucle. C'est là que le in_array()
peu. Depuis que j'ai créé le tableau de l'stockés fb id je peux maintenant en boucle sur mes résultats pour voir si il y a un match, et dans ce cas je veux profiter de l'objet d'origine que j'ai ajouté 'are_friends'=>false
et modifier ceux dans cet ensemble qui correspondent à la valeur "true" à la place de false. Je ne peux pas penser à une bonne façon sans boucle sur le tableau d'origine à l'intérieur de la boucle qui est les résultats de tableau.
Donc je suis en espérant que quelqu'un peut m'aider à trouver une solution ici, sans que la boucle secondaire
Le tableau jusqu'à ce point que commence comme à l'original ressemble
Array(
[data](
[0] => array(
are_fb_friends => false
name => user name
id => 1000
)
[1] => array(
are_fb_friends => false
name => user name
id => 2000
)
[2] => array(
are_fb_friends => false
name => user name
id => 3000
)
)
)
Selon la demande
C'est mon code actuel de la logique, que je tente de décrire ci-dessus..
public function fromFB($arr = array())
{
$new_arr = array();
if((is_array($arr))&&(count($arr) > 0))
{
$this->db->select()->from(MEMB_BASIC);
$first_pass = 0;
for($i=0;$i < count($arr);$i++)
{
$arr[$i]['are_fb_friends'] = "false";
$new_arr[] = $arr[$i]['id'];
if($first_pass == 0)
{
$this->db->where('facebookID', $arr[$i]['id']);
}
else
{
$this->db->or_where('facebookID', $arr[$i]['id']);
}
$first_pass++;
}
$this->db->limit(count($arr));
$query = $this->db->get();
if($query->num_rows() > 0)
{
$result = $query->result();
foreach($result as $row)
{
if(in_array($row->facebookID, $new_arr))
{
array_keys($arr, "blue");
}
}
}
}
return $arr;
}
édité mon post pour refléter le code ainsi
OriginalL'auteur chris | 2013-03-11
Vous devez vous connecter pour publier un commentaire.
À la recherche d'une valeur et d'obtenir ses clés dans un tableau, vous pouvez utiliser le la fonction array_search qui retourne la clé de l'élément.
Pour tableau multidimensionnel de recherche en PHP regarder https://stackoverflow.com/a/8102246/648044.
Si vous êtes inquiet au sujet de l'optimisation je pense que vous devez essayer d'utiliser une requête sur une base de données (avec une bonne indexation).
En passant, êtes-vous à l'aide de la Facebook Langage De Requête? Si ne pas essayer, c'est utile.
Sur une note côté, le
array_search()
sera que renvoie l'index de la matrice dans la matrice de sa recherche? ou l'indice dans le tableau, il recherche les. En d'autres mots à partir de l'exemple ci-dessus, si je recherche pour 3000, il sera de retour un "2" ou "id"J'ai mis à jour la réponse.
tableau de recherche je pense peut fonctionner pour certains de mes besoins, cependant le lien vers un autre post dans les tris cloué. Je l'ai modifié un peu mais dans l'ensemble c'était un spot sur la nécessité, même si pas vraiment envie de foreach sur le jeu de données d'un temps supplémentaire, je pense que c'est une unavoiable mal.
OriginalL'auteur Guglie