Ich habe 2 Arrays. Eines mit schlechten Keywords und das andere mit Namen von Websites.Suche Schlüsselwörter von einem Array gegen Werte eines anderen Arrays - php
$bad_keywords = array('google',
'twitter',
'facebook');
$sites = array('youtube.com', 'google.com', 'm.google.co.uk', 'walmart.com', 'thezoo.com', 'etc.com');
einfache Aufgabe: Ich muss durch die $sites
Array filtern und filtern out Jeder Wert, der enthält jedes Schlüsselwort, das in dem $bad_keywords
Array gefunden wird. Am Ende davon brauche ich ein Array mit sauberen Werten, bei denen ich keine bool_keywords finden würde.
Ich habe das Internet durchforstet und kann nicht scheinen, eine einfache einfache Lösung dafür zu finden. Hier sind mehrere Methoden, die ich versucht habe:
1. mit 2 foreach
Schleifen (fühlt sich langsamer - Ich denke, mit in-built PHP-Funktionen wird es beschleunigen)
2. array_walk
3. array_filter
Aber ich Es ist mir nicht gelungen, den besten und effizientesten Weg zu finden. Ich möchte ein Tool haben, das durch eine Liste von 20k + -Sites gegen eine Liste von Stichwörtern filtert, die bis zu 1k lang sein können, so dass die Leistung im Vordergrund steht. Auch, was wäre die bessere Methode für die tatsächliche Suche in diesem Fall - regex
oder strpos
?
Welche anderen Optionen gibt es, dies zu tun und was wäre der beste Weg?
was Ihre erwartete Ausgabe –
@ArunKumaresh Ausgang: das gefilterte $ Websites Array (dh keine Elemente enthalten, die eine bad_keyword ist in seinem Wert gefunden) – Ben