Heim >Backend-Entwicklung >PHP-Tutorial >Wie filtere ich Array-Werte wie SQL LIKE \'%search%\' mit PHP?

Wie filtere ich Array-Werte wie SQL LIKE \'%search%\' mit PHP?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 04:32:29838Durchsuche

How to Filter Array Values Like SQL LIKE '%search%' Using PHP?

Filtern von Array-Werten wie SQL LIKE '%search%' mit PHP

Um eine Funktion zur automatischen Vervollständigung mithilfe von JQueryUI zu implementieren, werden alphabetische Übereinstimmungen aus einem abgerufen Ein auf Benutzereingaben basierendes Array ist unerlässlich. Betrachten Sie ein Array [„orange“, „blau“, „grün“, „rot“, „rosa“, „braun“, „schwarz“]. Wenn der Benutzer „bl“ eingibt, möchten Sie nur [„blau“, „schwarz“] anzeigen.

Anstatt array_filter mit einer benutzerdefinierten Funktion zu verwenden, besteht eine effizientere Lösung darin, die preg_grep-Funktion zu verwenden, die ermöglicht das Filtern mit regulären Ausdrücken.

Beispiel:

<code class="php">$input = preg_quote('bl', '~'); // Protect against regex special characters
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

$result = preg_grep('~' . $input . '~', $data);

print_r($result); // Output: Array ( [0] => blue [1] => black )</code>

Erklärung:

  • preg_quote(' bl', '~') maskiert Sonderzeichen in der Eingabezeichenfolge und stellt so sicher, dass sie im regulären Ausdruck wörtlich behandelt werden.
  • Der reguläre Ausdruck ~ . $input . ~ sucht nach Elementen im Array, die die Eingabezeichenfolge „bl“ irgendwo innerhalb des Werts enthalten.
  • preg_grep wendet diesen regulären Ausdrucksfilter auf das $data-Array an und gibt ein Array zurück, das nur Übereinstimmungen enthält, die die Bedingung erfüllen.

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