Vous n'êtes pas identifié(e).

  • Contributions :
  • Vos boîtes de messages privés sont vides.

🟣 Recherche dans un tableau


#1 2015-03-19 12:32:14

Mention jeromeweb
🥉 Grade : Scout

Auxiliaire1000 messages
Lieu : pas loin de paris
Inscription : 2014-10-12
Messages : 1 328
Likes : 5

PHP
Automatisation Web

Recherche dans un tableau

Hello,
J'ai un tableau associatif qui contient url => balise title

Ex :
"1.php" => "bienvenue"
"2.php" => "bienvenue 2"
"3.php" => "bienvenue"
etc....

J'aimerais faire une recherche sur une valeur et que ça me retourne la cle (= je veux toutes les urls qui ont le title "bienvenue") par exemple
Array_search() ne renvoie malheureusement qu'un resultat.
Est ce qqn sait si il y a une fonction PHP native qui renvoie plusieurs résultats et avec le meme fonctionnement (je recherche la valeur et j'obtiens 1 ou +eurs clefs)

Au pire je le fais via des foreach mais le 1er tableau contient des milliers de lignes et le nombre de title peut monter alors ça va faire bcp de traitement

Merci d'avance

0
J'aime ❤️

🔴 Hors ligne

#2 2015-03-19 12:36:42

Mention Jewem
🥉 Grade : Scout

Auxiliaire
Lieu : Grenoble
Inscription : 2014-02-04
Messages : 496
Likes : 0

Re : Recherche dans un tableau

function preg_grep_keys($pattern, $input, $flags = 0) {
    return array_intersect_key($input, array_flip(preg_grep($pattern, array_keys($input), $flags)));
}

Ça prend une regex en pattern, ton tableau et te retourne toutes les clés correspondantes... De loin le plus rapide sur de gros tableaux smile

EDIT: Tu as un mail au fait wink

Dernière modification par Jewem (2015-03-19 12:37:08)

0
J'aime ❤️

🔴 Hors ligne

#3 2015-03-19 13:14:15

Mention davidc1
🥉 Grade : Scout

Auxiliaire1000 messages
Lieu : La colle sur Loup
Inscription : 2013-09-17
Messages : 1 122
Likes : 2

Re : Recherche dans un tableau

Perso j'ai pas peur du foreach sur des milliers de lignes.

Pour des millions : grep...

0
J'aime ❤️

🔴 Hors ligne

#4 2015-03-19 16:47:49

Mention jeromeweb
🥉 Grade : Scout

Auxiliaire1000 messages
Lieu : pas loin de paris
Inscription : 2014-10-12
Messages : 1 328
Likes : 5

PHP
Automatisation Web

Re : Recherche dans un tableau

Jewem a écrit :

function preg_grep_keys($pattern, $input, $flags = 0) {
    return array_intersect_key($input, array_flip(preg_grep($pattern, array_keys($input), $flags)));
}

Ça prend une regex en pattern, ton tableau et te retourne toutes les clés correspondantes... De loin le plus rapide sur de gros tableaux smile

EDIT: Tu as un mail au fait wink

Super merci je vais tester ça (je deteste les regex big_smile)

J'ai répondu en début d'apres midi à ton email, non? tu es VIP normalement ^^

0
J'aime ❤️

🔴 Hors ligne

#5 2015-03-19 16:49:27

Mention jeromeweb
🥉 Grade : Scout

Auxiliaire1000 messages
Lieu : pas loin de paris
Inscription : 2014-10-12
Messages : 1 328
Likes : 5

PHP
Automatisation Web

Re : Recherche dans un tableau

davidc1 a écrit :

Perso j'ai pas peur du foreach sur des milliers de lignes.
Pour des millions : grep...

Il faut juste rallonger le timeout du script qd il y a beaucoup de lignes big_smile

0
J'aime ❤️

🔴 Hors ligne

#6 2015-03-19 16:55:18

Mention jeromeweb
🥉 Grade : Scout

Auxiliaire1000 messages
Lieu : pas loin de paris
Inscription : 2014-10-12
Messages : 1 328
Likes : 5

PHP
Automatisation Web

Re : Recherche dans un tableau

Tu a un sacrée niveau quand meme Jewem pour imbriquer 4 fonctions comme ça!

0
J'aime ❤️

🔴 Hors ligne

Pied de page des forums