J'ai 2 tableaux. Un avec de mauvais mots-clés et l'autre avec des noms de sites.Recherche de mots-clés d'un tableau par rapport aux valeurs d'un autre tableau - php
$bad_keywords = array('google',
'twitter',
'facebook');
$sites = array('youtube.com', 'google.com', 'm.google.co.uk', 'walmart.com', 'thezoo.com', 'etc.com');
tâche simple: j'ai besoin de filtrer à travers le réseau $sites
et filtrer sur toute valeur contient un mot clé qui se trouve dans le tableau $bad_keywords
. À la fin de celui-ci j'ai besoin d'un tableau avec des valeurs propres que je ne trouverais pas de bad_keywords se produisant du tout.
J'ai parcouru le web et je n'arrive pas à trouver une solution simple et facile pour cela. Voici plusieurs méthodes que j'ai essayé: 1.
avec 2 boucles foreach
(se sent plus lent - je pense à l'aide intégrée dans-fonctions PHP accélérer)
2. array_walk
3. array_filter
Mais je n'ont pas réussi à définir la meilleure manière, la plus efficace. Je souhaite disposer d'un outil permettant de filtrer une liste de sites 20k + par rapport à une liste de mots clés pouvant atteindre 1k de long. Les performances sont donc primordiales. En outre, quelle serait la meilleure méthode pour la recherche réelle dans ce cas - regex
ou strpos
?
Quelles sont les autres options disponibles et quelle serait la meilleure solution?
ce que votre résultat attendu –
@ArunKumaresh sortie: le tableau de sites $ filtré (c.-à-ne contient pas d'éléments qu'un bad_keyword se trouve à l'intérieur de sa valeur) – Ben