PHP ist eine leistungsstarke Programmiersprache, die häufig für die Webentwicklung verwendet wird. In PHP ist Array eine sehr wichtige Datenstruktur und wird häufig in verschiedenen Szenarien verwendet, z. B. bei der Datenspeicherung, Datenübertragung, Sortierung, Filterung usw. Bei der Array-Verarbeitung ist die Fuzzy-Abfrage eine wichtige Anforderung, und dieser Artikel konzentriert sich auf diese Anforderung.
1. Definition einer Fuzzy-Abfrage
In PHP bezieht sich die Fuzzy-Abfrage auf die Abfrage aller Positionen, an denen Textfragmente in einem Array gemäß bestimmten Übereinstimmungsregeln erscheinen. Diese Abgleichsregel kann ein regulärer Ausdruck, ein String-Abgleich, ein Platzhalter usw. sein.
2. Implementierung von Fuzzy-Abfragen
In PHP gibt es viele Möglichkeiten, Fuzzy-Abfragen zu implementieren. Der Autor stellt die folgenden Implementierungsmethoden vor.
Reguläre Ausdrücke sind ein leistungsstarkes Matching-Tool, das zum Suchen und Ersetzen von Zeichenfolgen verwendet werden kann. In PHP können Sie mit der Funktion preg_match einen regelmäßigen Abgleich für ein Array durchführen und das angegebene Textfragment abfragen. Das Folgende ist ein einfacher Beispielcode:
<?php $array = array("apple", "banana", "kiwi", "pear", "peach"); $pattern = "/^p/"; $results = array(); foreach ($array as $key => $value) { if (preg_match($pattern, $value)) { $results[] = $key; } } print_r($results); ?>
Das Ausgabeergebnis des obigen Codes ist:
Array ( [0] => 3 [1] => 4 )
Wie Sie sehen können, führt das Programm einen regelmäßigen Abgleich des Arrays durch, fragt nach Textfragmenten ab, die mit dem Buchstaben „p“ beginnen, und gibt ihren Inhalt am Array-Speicherort in zurück.
String-Matching bedeutet, herauszufinden, ob ein bestimmtes Textfragment in einer Zeichenfolge enthalten ist. In PHP können Sie die Funktion strstr verwenden, um einen String-Abgleich für ein Array durchzuführen. Das Folgende ist ein einfacher Implementierungscode:
<?php $array = array("apple", "banana", "kiwi", "pear", "peach"); $search = "a"; $results = array(); foreach ($array as $key => $value) { if (strstr($value, $search)) { $results[] = $key; } } print_r($results); ?>
Das Ausgabeergebnis des obigen Codes ist:
Array ( [0] => 0 [1] => 1 [2] => 2 )
Wie Sie sehen können, fragt das Programm die Textfragmente ab, die den Buchstaben „a“ enthalten, indem es einen String-Abgleich im Array durchführt, und gibt zurück sie in Position im Array.
Ein Platzhalter bezieht sich auf eine Fuzzy-Matching-Regel, die ein oder mehrere Zeichen darstellt. In PHP können Sie die Funktion fnmatch verwenden, um einen Platzhalterabgleich für ein Array durchzuführen. Das Folgende ist ein einfacher Implementierungscode:
<?php $array = array("apple", "banana", "kiwi", "pear", "peach"); $pattern = "*a*"; $results = array(); foreach ($array as $key => $value) { if (fnmatch($pattern, $value)) { $results[] = $key; } } print_r($results); ?>
Das Ausgabeergebnis des obigen Codes ist:
Array ( [0] => 0 [1] => 1 [2] => 4 )
Wie Sie sehen können, fragt das Programm die Textfragmente ab, die den Buchstaben „a“ enthalten, indem es einen Platzhalterabgleich im Array durchführt, und gibt zurück sie am Array-Standort in.
3. Zusammenfassung
Zusammenfassend ist die Fuzzy-Abfrage eine sehr wichtige Anforderung bei der Verarbeitung von PHP-Arrays. Während des Implementierungsprozesses können Sie eine vollständige Matching-Abfrage für das Array durchführen, indem Sie reguläre Ausdrücke, String-Matching, Platzhalter usw. verwenden, um unterschiedliche Anforderungen zu erfüllen.
Das obige ist der detaillierte Inhalt vonFuzzy-Abfrage im PHP-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!