ホームページ  >  記事  >  バックエンド開発  >  PHP 配列で SQL LIKE \'%search%\' 機能を実現するにはどうすればよいですか?

PHP 配列で SQL LIKE \'%search%\' 機能を実現するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-04 11:02:02546ブラウズ

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

PHP での同様の SQL フィルタリング: 部分テキストとの一致を返す

SQL と同様の、部分テキスト検索に基づいた配列からの値のフィルタリング'%search%' クエリと同様、多くのプログラミング シナリオで不可欠なタスクとなる可能性があります。 PHP では、配列を使用してこれを実現するには特殊なテクニックが必要です。

提供されている例を考えてみましょう。色名を含む配列が与えられた場合、目標は、ユーザーの入力テキストに部分的に一致する色のみを返すことです。たとえば、入力が "bl" の場合、期待される出力は入力配列 ["orange"、"blue"、"green"、"red"、"pink"、 "brown", "black"].

preg_grep での正規表現の使用

カスタム ラムダ関数で array_filter を使用する代わりに、よりシンプルで効率的なアプローチは次のとおりです。 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 ~ 区切り文字とパターン ~' を使用します。 $input 。 '~ は、入力部分文字列 bl を含む任意の文字列と一致します。
  • 結果の $result 配列には、入力と部分的に一致する要素 (つまり、青と黒) のみが含まれます。

以上がPHP 配列で SQL LIKE \'%search%\' 機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。