此时我有一个带有AJAX脚本的页面,该脚本使用LIKE'%搜索词从输入框%'搜索数据库。
我需要对其进行修改,以便不是搜索数据库而是搜索数组(已经从两个表构建 - 我不能使用JOIN,因为它比它更多)。
如何在PHP中创建一个模糊搜索函数,它将返回数组中所有可能的匹配项?
答案 0 :(得分:8)
你想要preg_grep
e.g。
$arr = array("tom jones", "tom smith", "bob jones", "jon smith");
$results = preg_grep("/jones/",$arr);
$results
现在将包含两个元素"tom jones"
和"bob jones"
答案 1 :(得分:2)
你可以循环遍历数组并使用strpos来找到匹配的元素
foreach( $arr as $value ) {
if ( strpos($value, 'searchterm') !== FALSE ) {
// Match
}
}
您可以使用正则表达式进行更高级的搜索,但如果您只是尝试执行简单的LIKE'%term%'类型搜索,则strpos会更快。