Heim  >  Artikel  >  Backend-Entwicklung  >  Fuzzy-Abfrage im PHP-Array

Fuzzy-Abfrage im PHP-Array

王林
王林Original
2023-05-19 13:30:37706Durchsuche

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.

  1. Verwenden Sie reguläre Ausdrücke

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.

  1. String-Matching verwenden

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.

  1. Verwenden Sie Platzhalter

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!

Stellungnahme:
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