首頁  >  文章  >  後端開發  >  如何在PHP數組中實作SQL LIKE\'%search%\'功能?

如何在PHP數組中實作SQL LIKE\'%search%\'功能?

DDD
DDD原創
2024-11-04 11:02:02505瀏覽

How to Achieve SQL LIKE '%search%' Functionality in PHP Arrays?

PHP 中的類似SQL 過濾:傳回部分文字的符合

基於部分文字搜尋篩選數組中的值,類似於SQL LIKE '%search%' 查詢在許多程式設計場景中可能是一項基本任務。在 PHP 中,使用陣列實現此目的需要專門的技術。

讓我們考慮一下提供的範例。給定一個包含顏色名稱的數組,目標是僅傳回與使用者輸入文字部分相符的顏色。例如,輸入為「bl」時,預期輸出將為輸入陣列[“orange”、“blue”、“green”、“red”、“pink”、 "brown", "black"].

在preg_grep 中使用正規表示式

與其將array_filter 與自訂lambda 函數一起使用,更簡單、更有效率的方法是使用preg_grep 函數。它將正規表示式的強大功能與數組過濾結合在一起:

<code class="php">$input = preg_quote('bl', '~'); // Quote the input string for use in regex
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

$result = preg_grep('~' . $input . '~', $data);</code>

在此程式碼中:

  • preg_quote 透過轉義.、? 和* 等特殊字符來保護輸入字串。
  • preg_grep 使用 PHP ~ 正規表示式分隔符號和模式 ~' 。 $輸入。 '~ 符合包含輸入子字串 bl 的任何字串。
  • 產生的 $result 陣列將只包含部分符合輸入的元素,即藍色和黑色。

以上是如何在PHP數組中實作SQL LIKE\'%search%\'功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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