首页  >  文章  >  后端开发  >  如何在 PHP 中像 SQL 的 `LIKE \'%search%\'` 一样过滤数组?

如何在 PHP 中像 SQL 的 `LIKE \'%search%\'` 一样过滤数组?

DDD
DDD原创
2024-11-04 03:19:31702浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn