從數組中過濾值類似於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中文網其他相關文章!