2019年9月30日14:36:15
知识兔if (!function_exists('arrayFuzzyQuery')) { /* * 提供一维数组value 模糊查询,只支持utf-8 内部处理是Unicode 编码特殊编码格式的可能会出错 * 注意:此方法可能会出现处理时间过长的问题 */ function arrayFuzzyQuery($string, array $array = [], $key = null) { if (empty($string)) { throw new \Exception('查询参数不能为空'); } if (empty($array)) { throw new \Exception('被查询数组为空'); } $return = []; //期望相似度比例 100为 100% $expectedRatio = 50; //同时使用全对比和相似度对比 foreach ($array as $k => $v) { if (empty($key)) { similar_text($string, $v, $percent); if (mb_substr_count($string, $v) > 0 || $percent >= $expectedRatio) { array_push($return, $v); } } else { similar_text($string, $v[$key], $percent); if (mb_substr_count($string, $v[$key]) > 0 || $percent >= $expectedRatio) { array_push($return, $v); } } } return $return; }}