Heim > Artikel > Backend-Entwicklung > Wie filtere ich ein Array in PHP wie „LIKE \'%search%\“ von SQL?
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!