Heim Backend-Entwicklung PHP-Problem So führen Sie eine Fuzzy-Abfrage für ein Array in PHP durch

So führen Sie eine Fuzzy-Abfrage für ein Array in PHP durch

Apr 26, 2023 am 10:28 AM

In der PHP-Entwicklung sind Arrays ein unvermeidlicher Teil von uns. Wenn wir Daten in einem Array abfragen müssen, verwenden wir normalerweise Fuzzy-Abfragen. In diesem Artikel wird vorgestellt, wie man Fuzzy-Abfragen von Arrays in PHP durchführt.

1. Was ist eine Array-Fuzzy-Abfrage?

Array-Fuzzy-Abfrage, d. h. eine auf Schlüsselwörtern basierende Datenabfrage, erfordert keine genaue Übereinstimmung, es müssen nur übereinstimmende Elemente zurückgegeben werden Ergebnisse. In der tatsächlichen Entwicklung werden häufig Array-Fuzzy-Abfragen verwendet, um Daten mit ähnlichen Merkmalen zu finden.

Zum Beispiel haben wir eine Kontaktgruppe, die mehrere Kontaktinformationen enthält, darunter Name, Telefonnummer, E-Mail-Adresse und andere Informationen. Wir können Fuzzy-Abfragen verwenden, um die Kontaktinformationen einer Person zu finden, oder sogar nur einen Teil eines Namens oder einer Telefonnummer eingeben, um Ergebnisse zu finden.

2. Verwenden Sie array_filter() für Fuzzy-Abfragen.

Die Funktion array_filter() von PHP kann jedes Element im Array bedingt filtern und Ergebnisse zurückgeben, die die Bedingungen erfüllen. Wir können diese Funktion verwenden, um eine Fuzzy-Abfrage von Arrays zu implementieren.

Angenommen, wir haben ein Benutzerarray, das mehrere Kontaktinformationen enthält:

$users = array(
    array('name' => '张三', 'phone' => '13811112222', 'email' => 'zhangsan@example.com'),
    array('name' => '李四', 'phone' => '13911113333', 'email' => 'lisi@example.com'),
    array('name' => '王五', 'phone' => '15011112222', 'email' => 'wangwu@example.com'),
    array('name' => '赵六', 'phone' => '18011114444', 'email' => 'zhaoliu@example.com')
);
Nach dem Login kopieren

Jetzt möchten wir die Funktion implementieren, Benutzer anhand von Schlüsselwörtern zu finden. Wir können eine Funktion definieren, Schlüsselwörter und Benutzerarrays übergeben und die Funktion array_filter() verwenden, um Elemente im Array zu filtern, die die Bedingungen erfüllen.

function search_users($keyword, $users) {
    $result = array_filter($users, function($user) use ($keyword) {
        foreach($user as $value) {
            if(stripos($value, $keyword) !== false) {
                return true;
            }
        }
        return false;
    });
    return $result;
}
Nach dem Login kopieren

Die obige Funktion führt einen Schleifenvergleich aller Benutzerinformationen durch und gibt true zurück, wenn eine Übereinstimmung gefunden wird. Die Funktion „stripos()“ kann das erste Vorkommen einer Zeichenfolge in einer anderen Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung abrufen.

Wir können diese Funktion aufrufen, um eine Fuzzy-Abfrage durchzuführen:

$search_result = search_users('1111', $users);
Nach dem Login kopieren

Diese Abfrage gibt alle Kontaktinformationen zurück, deren Telefonnummer „1111“ enthält.

Die Verwendung der Funktion array_filter() zum Implementieren von Fuzzy-Abfragen für Arrays ist einfach und benutzerfreundlich, weist jedoch auch ein Problem auf: Wenn die Datenmenge im Array groß ist, kann die Leistung beeinträchtigt werden. Zu diesem Zeitpunkt können wir eine andere Methode verwenden, um eine Fuzzy-Abfrage des Arrays zu implementieren.

3. Verwenden Sie reguläre Ausdrücke für Fuzzy-Abfragen.

Reguläre Ausdrücke sind ein Werkzeug zum Abgleichen und Ersetzen von Text. In PHP können wir die Funktion preg_grep() verwenden, um Elemente, die Bedingungen erfüllen, in einem Array basierend auf regulären Ausdrücken herauszufiltern.

Angenommen, wir haben ein Schlüsselwortarray, das mehrere Schlüsselwörter enthält:

$keywords = array('1111', 'san', 'y@example');
Nach dem Login kopieren

Jetzt möchten wir alle Kontaktinformationen finden, die die Schlüsselwortbedingungen im Benutzerarray erfüllen. Wir können reguläre Ausdrücke verwenden, um diese Funktion zu erreichen:

function search_users_regex($keywords, $users) {
    $result = array();
    foreach ($keywords as $keyword) {
        $pattern = '/' . preg_quote($keyword, '/') . '/i'; // i表示不区分大小写
        // preg_grep()返回满足条件的元素的数组
        $matches = preg_grep($pattern, $users);
        $result = array_merge($result, $matches);
    }
    return $result;
}
Nach dem Login kopieren

Die obige Funktion durchläuft das Schlüsselwortarray und generiert einen regulären Ausdruck für jedes Schlüsselwort. Verwenden Sie preg_grep (), um eine Übereinstimmung herzustellen, und passen Sie die Kontaktbedingungen an Informationen in ein resultierendes Array.

Wir können diese Funktion aufrufen, um eine Fuzzy-Abfrage durchzuführen:

$search_result = search_users_regex($keywords, $users);
Nach dem Login kopieren

Diese Abfrage gibt alle Kontaktinformationen zurück, die eine beliebige Schlüsselwortbedingung erfüllen, einschließlich Telefonnummern mit „1111“ und Kontaktinformationen enthält „san“ im Namen und „y@example“ in der E-Mail-Adresse.

Die Verwendung regulärer Ausdrücke für die Fuzzy-Abfrage von Arrays kann genauere Ergebnisse liefern, die die Bedingungen erfüllen, hat jedoch auch einen Nachteil: Die Erstellung regulärer Ausdrücke erfordert bestimmte Kenntnisse und Fähigkeiten, wenn sie nicht gut geschrieben sind , kann es schwierig werden, den Code zu verstehen und zu warten.

4. Zusammenfassung

Array-Fuzzy-Abfrage ist eine der am häufigsten verwendeten Funktionen in der PHP-Entwicklung, die uns helfen kann, schnell Elemente im Array zu finden, die Bedingungen erfüllen. In diesem Artikel werden zwei Möglichkeiten zur Implementierung einer Array-Fuzzy-Abfrage vorgestellt, nämlich die Verwendung der Funktion array_filter() und die Verwendung regulärer Ausdrücke. In der tatsächlichen Entwicklung können wir basierend auf den tatsächlichen Anforderungen eine geeignete Implementierungsmethode auswählen. Gleichzeitig sollten wir auch auf die Auswirkungen achten, die Fuzzy-Abfragen auf die Leistung haben können, und die Abfrageeffizienz so weit wie möglich optimieren.

Das obige ist der detaillierte Inhalt vonSo führen Sie eine Fuzzy-Abfrage für ein Array in PHP durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. Mar 25, 2025 am 10:37 AM

Die JIT -Kompilierung von PHP 8 verbessert die Leistung, indem häufig ausgeführte Code in den Maschinencode zusammengestellt wird, um Anwendungen mit schweren Berechnungen zugute und die Ausführungszeiten zu reduzieren.

OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. Mar 26, 2025 pm 04:13 PM

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. Mar 26, 2025 pm 04:18 PM

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. Mar 25, 2025 pm 03:12 PM

In dem Artikel wird die symmetrische und asymmetrische Verschlüsselung in PHP erörtert und ihre Eignung, Leistung und Sicherheitsunterschiede verglichen. Die symmetrische Verschlüsselung ist schneller und für Massendaten geeignet, während asymmetrisch für den sicheren Schlüsselaustausch verwendet wird.

PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. Mar 25, 2025 pm 03:06 PM

In dem Artikel wird die Implementierung einer robusten Authentifizierung und Autorisierung in PHP erörtert, um den nicht autorisierten Zugriff zu verhindern, Best Practices zu beschreiben und sicherheitsrelevante Tools zu empfehlen.

Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Mar 20, 2025 pm 04:57 PM

In Artikel wird das Abrufen von Daten aus Datenbanken mithilfe von PHP, die Schritte, Sicherheitsmaßnahmen, Optimierungstechniken und gemeinsame Fehler bei Lösungen erfasst.

PHP -CSRF -Schutz: Wie Sie CSRF -Angriffe verhindern. PHP -CSRF -Schutz: Wie Sie CSRF -Angriffe verhindern. Mar 25, 2025 pm 03:05 PM

In dem Artikel werden Strategien erörtert, um CSRF-Angriffe in PHP zu verhindern, einschließlich der Verwendung von CSRF-Token, selben Cookies und ordnungsgemäßem Sitzungsmanagement.

Was ist der Zweck von MySQLI_Query () und MySQLI_Fetch_assoc ()? Was ist der Zweck von MySQLI_Query () und MySQLI_Fetch_assoc ()? Mar 20, 2025 pm 04:55 PM

In dem Artikel werden die Funktionen von MySQLI_Query () und MySQLI_Fetch_assoc () in PHP für MySQL -Datenbankinteraktionen erörtert. Es erklärt ihre Rollen, Unterschiede und liefert ein praktisches Beispiel für ihre Verwendung. Das Hauptargument konzentriert sich auf die Vorteile von usin

See all articles