Page 1 sur 1

[résolut] Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 17:46
par DevPHP
Bonjour à tous,

Je cherche à réalisé une fonction qui me permettrai de chercher dans un tableau (assez gros et pas strictement égale) la valeur d'une clé

Code : Tout sélectionner

Array ( [cx_4e96fc87ef67e] => Array ( [pseudo] => le-codeur-fou [url] => http://kristof.123.fr/ [titre] => Page introuvable [ip] => 54.11.1.150 [time] => 1318518326 ) [cx_4e69fc81ef61e] => Array ( [pseudo] => DevPHP [url] => http://kristof.123.fr/ [titre] => Formulaire de contact [ip] => 84.41.84.150 [time] => 1318518394 ) )
La valeur que je recherche ici est le pseudo, donc

Code : Tout sélectionner

[cx_4e96fc87ef67e] [pseudo] = le-codeur-fou
Je sais déjà comment il s'appel, je dois juste vérifié qu'il est dans mon tableau (en extra, la clé pour avoir les infos)

Re: Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 17:58
par AB
Tu peux faire une boucle sur ton tableau et pour chaque élément (qui est un tableau) tu peux appliquer la fonction in_array
$recherche = 'le-codeur-fou';
$result = false;

foreach ($tab as $array) 
{
    if (in_array($recherche,$array)) 
      {
        $result=true;
        break;
      }
}

echo $result;

Re: Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 18:26
par DevPHP
Pour la charge sur un tableau assez gros, ça irai ?
Il va devoir le faire très suivant :|

Re: Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 18:39
par stealth35
d’où sort le tableau ?

Re: Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 19:23
par DevPHP
d'un serialize situé sur un fichier texte (chargé une fois :P )
La taille change régulièrement selon la fréquentation

Re: Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 19:44
par Zahnzao
Une idée au cas ou...

D'après ce que tu dis, tu sais déjà comment il s’appelle, et tu dois juste vérifier qu'il est présent dans le tableau. Dans ce cas pourquoi ne pas faire la recherche directement sur le serialize en mode string ?

Re: Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 20:14
par DevPHP
Pas bête, un truc a ajouter dans mon système de cache...
Merci, bon pour l'histoire de connaitre la clé, je ne serai pas aussi facilement.

Pour ceux qui veulent faire comme moi strstr <- le nom est top hein ?

Re: [résolut] Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 20:28
par AB
Comme indiqué dans la doc il est dans ce cas conseillé d'utiliser strpos qui sera plus rapide.

Sinon elle est de quel ordre la taille de ton tableau ?

Re: [résolut] Rechercher dans un tableau une valeur

Posté : 13 oct. 2011, 23:15
par DevPHP
Très variable, en journée dans les 250ko en soiré quelque ko a peine dans mon tableau se trouve, la page d'ou il vient, son ip et un timestamp sur 5 minutes.
Le truc, c'est que des fois le fichier est très gros (2 mo environs), donc imaginons, que je cherche 15 personne pour savoir si ils sont la, avec 2 000 visiteurs sur la même page 2 000 * 15 = 30 000 recherches, ça deviens lourd comme requête... Maintenant, comme c'est très varié je pense qu'avec une recherche strpos, ça devrai le faire.
J’espère pouvoir optimisé cela.

Bon en y réfléchissant, tout cela n'est pas obligatoire et dans le cas ou le site ramerai, je n'aurai cas retirer.