Heim  >  Artikel  >  Backend-Entwicklung  >  Wie filtere ich ein Array in PHP wie „LIKE \'%search%\“ von SQL?

Wie filtere ich ein Array in PHP wie „LIKE \'%search%\“ von SQL?

DDD
DDDOriginal
2024-11-04 03:19:31698Durchsuche

How to Filter an Array in PHP Like SQL's `LIKE '%search%'`?

Filtern von Werten aus einem Array ähnlich wie SQL LIKE '%search%'

Das Entwerfen eines Autovervollständigungsfelds mit JQueryUI stellt eine Herausforderung dar zum Filtern von Werten aus einem Array basierend auf Benutzereingaben. Betrachten Sie ein Array mit Farben: ['orange', 'blau', 'grün', 'rot', 'rosa', 'braun', 'schwarz']. Wenn der Benutzer „bl“ eingibt, wäre die gewünschte Ausgabe [‘blue‘, ‚black‘].

Um dies zu erreichen, könnte man die Verwendung von array_diff() in Betracht ziehen, es gibt jedoch einen geeigneteren Ansatz: preg_grep. Diese Funktion kombiniert reguläre Ausdrücke mit Filterung und ist somit ideal für die jeweilige Aufgabe.

Implementierung mit preg_grep:

<code class="php">$input = preg_quote('bl', '~'); // Don't forget to quote the input string
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

$result = preg_grep('~' . $input . '~', $data);</code>

In diesem Code wird preg_quote verwendet Escape-Sonderzeichen in der Eingabezeichenfolge. Der reguläre Ausdruck „~w ~“ entspricht jedem Wort (einem oder mehreren Buchstaben), das die eingegebene Zeichenfolge enthält. preg_grep wendet diesen Filter dann auf das Datenarray an, was zu den gewünschten Übereinstimmungen führt.

Das obige ist der detaillierte Inhalt vonWie filtere ich ein Array in PHP wie „LIKE \'%search%\“ von SQL?. 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