ホームページ  >  記事  >  バックエンド開発  >  SQL の「LIKE \'%search%\'」のように PHP で配列をフィルタリングする方法は?

SQL の「LIKE \'%search%\'」のように PHP で配列をフィルタリングする方法は?

DDD
DDDオリジナル
2024-11-04 03:19:31698ブラウズ

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 ~」は、入力された文字列を含む任意の単語 (1 つ以上の文字) と一致します。次に、preg_grep はこのフィルターをデータ配列に適用し、目的の一致が得られます。

以上がSQL の「LIKE \'%search%\'」のように PHP で配列をフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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