Как применить подобный_текст к array_uintersect?

Этот вопрос относится к Ответ Франсуа Дешена на один из моих предыдущих вопросов.

Я не знаю, как применить мою функцию проверки подобия текста к функции array_uintersect.

Вот моя функция (открыта для идей по улучшению):

function checkSimilar($str1, $str2){
    similar_text($str1, $str2, $percent);
    if($percent > 75){ 
        return $str2; 
    }
    else{ 
        return null;
    }
}

person Michael Ecklund    schedule 18.06.2011    source источник
comment
Вы хотите отсортировать массив по процентному соотношению? Это не имеет ничего общего с array_unintersect.   -  person Halcyon    schedule 19.06.2011
comment
@Frits van Campen Этот вопрос основан на другом вопросе, который я связал в верхней части этого вопроса. Пожалуйста, прочтите другую ссылку. Мы использовали array_uintersect... Мне сказали создать функцию, использующую Similar_text(), и заменить функцию в строке array_uintersect, однако -- похоже, она не работает. :-\   -  person Michael Ecklund    schedule 20.06.2011
comment
Но чтобы снова объяснить себя, у меня есть два массива. Пользователь вводил названия песен, и названия песен (как они отображаются в источнике) искались во внешних источниках. Я хочу отсортировать названия песен, которые были найдены во внешних источниках, в порядке названий песен, введенных пользователем. просто сортируя один массив по порядку другого массива.   -  person Michael Ecklund    schedule 20.06.2011


Ответы (1)


Ну, это может быть глупо, что я говорю, я не знаю, но я не понимаю, почему у вас есть массив с такими ключами (значениями, как показано в вашем другом посте). Не совсем уверен, что вы пытаетесь сделать, я просто предположил, что вам нужен только один массив, возможно, с двумя измерениями (просто предположение, не уверен):

<?php

 $song[]=array('title'=>'boing', 'singer'=>'john smith', 'year'=>'1949');
 $song[]=array('title'=>'Don\'t Trust me', 'singer'=>'3oh!3', 'year'=>'1929');
 $song[]=array('title'=>'You Belong with me', 'singer'=>'Taylor Swift', 'year'=>'1981');
 $song[]=array('title'=>'You Belong to earth', 'singer'=>'Taylor Swift', 'year'=>'1991');
 $song[]=array('title'=>'You Do  Belong Everywhere', 'singer'=>'Taylor Swift', 'year'=>'1971');
 $song[]=array('title'=>'Fire Burning', 'singer'=>'Sean Kingston', 'year'=>'2010');
 $song[]=array('title'=>'Love Your Enemy', 'singer'=>'Green Day', 'year'=>'1997');
 $song[]=array('title'=>'Gone', 'singer'=>'Kelly Clarkson', 'year'=>'1956');
 $song[]=array('title'=>'Know Your Enemy', 'singer'=>'Green Day', 'year'=>'1997');
 $song[]=array('title'=>'Gone long away', 'singer'=>'Kelly Clarkson', 'year'=>'1976');

 $find='belong me';
 $accepted=15; 
 $tmp=array();

 foreach($song as  $key => $value)
 { 
     similar_text(strtoupper($value['title']),  strtoupper($find), $p);
     if($p>=$accepted)
     $tmp[$p][] = 'title: '.$value['title'].' | rate: '.round($p,2).'%<br>'; 
 }
 krsort($tmp);

  echo 'THIS IS YOUR SEARCH RESULT FOR \'',$find,'\':<br>';
  echo '_____________________________________________________<br>';
  foreach($tmp as $key => $percentage)
    foreach($percentage as $value)
        echo $value ;

?> 
person Melsi    schedule 18.06.2011
comment
Спасибо, что нашли время, чтобы что-то придумать, но я не уверен, как применить этот код для того, что я пытаюсь выполнить. Я сделал комментарий над этим ответом @Frits van Campen. Пожалуйста, прочитайте его, чтобы найти то, что мне нужно. - person Michael Ecklund; 20.06.2011