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

DDD
發布: 2024-11-04 03:19:31
原創
697 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!