从数组中过滤值类似于 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中文网其他相关文章!