首頁  >  文章  >  後端開發  >  如何在 PHP 中像 SQL 的 `LIKE \'%search%\'` 一樣過濾陣列?

如何在 PHP 中像 SQL 的 `LIKE \'%search%\'` 一樣過濾陣列?

DDD
DDD原創
2024-11-04 03:19:31702瀏覽

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

從數組中過濾值類似於SQL LIKE '%search%'

使用JQueryUI 設計自動完成字段會帶來挑戰根據用戶輸入過濾數組中的值。考慮一個包含顏色的陣列:['orange', 'blue', 'green', 'red', 'pink', 'brown', 'black']。如果使用者輸入 'bl',所需的輸出將是 ['blue', 'black']。

要實現這一點,可以考慮使用 array_diff(),但有一個更合適的方法:preg_grep。這個函數將正規表示式與過濾結合起來,非常適合手邊的任務。

使用 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>

在此程式碼中,preg_quote 用於對輸入字串中的特殊字元進行轉義。正規表示式 '~w ~' 符合包含輸入字串的任何單字(一個或多個字母)。然後 preg_grep 將此過濾器應用於資料數組,從而產生所需的匹配。

以上是如何在 PHP 中像 SQL 的 `LIKE \'%search%\'` 一樣過濾陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn