Какой алгоритм работы у array_uintersect?

127
14 сентября 2021, 05:00

В продолжение темы: Как найти нечеткие совпадения в двух массивах?

Как работает array_uintersect?
У меня есть два массива, мне нужно найти все пересечения и их индекс(ключ). Но проблема возникает когда необходим нечеткий поиск. К примеру в первом массиве $array1 хранятся точные значения, а в массиве $array2 неточные с лишним мусором.
Делаю так

function myfoo2($v1,$v2){
    if (preg_match("/".$v1."/", $v2, $matches)){
        if (count($matches)>0) {
            return 0;
        }
        if(count($matches)===0){
            return 1; 
        }
        return -1;
    }
}
$array1 = array('мой шумный дом', 'хранитель лев', 'крутые ступени', 'королевство кошек', ' рожденные на воле', ' вспомни, что будет');
$array2 = array('русалочка', ' мусор хранитель лев (2009)', 'дитя человеческое', 'мусор королевство кошек 2 сезон', 'кордон следователя савельева', 'мусор вспомни, что будет (русская озвучка)');
print_r(array_uintersect($array1, $array2,'myfoo2'));

Хочу получить результат

Array ( 
    [1] => хранитель лев (2009) 
    [3] => королевство кошек 2 сезон 
    [5] => вспомни, что будет (русская озвучка) 
 )
READ ALSO
phpmailer не работает,Помогите

phpmailer не работает,Помогите

Fatal error: Uncaught phpmailerException: Could not execute: /usr/sbin/sendmail in W:\domains\Arams-Luggageloc\layouts\default\phpmailer\class

116
как преобразовать. почему строки не выводятся?

как преобразовать. почему строки не выводятся?

$person - массив, а вы пытаетесь распечать, как текст

138
Вызов нового метода анонимного класса

Вызов нового метода анонимного класса

Как можно вызвать метод kopo() в методе main, если данный метод не существует в Lopzik{} а внедрен во время определения анонимного класса? Или придется...

114
Как запустить игру Minecraft из своего лаунчера?

Как запустить игру Minecraft из своего лаунчера?

Делаю свой лаунчер для проектаСделал загрузку клиента, авторизацию, загрузку новостей из группы вк, всё отлично

177