>  기사  >  백엔드 개발  >  PHP는 유사성 알고리즘을 구현하기 위해 문자열과 배열을 작동합니다.

PHP는 유사성 알고리즘을 구현하기 위해 문자열과 배열을 작동합니다.

墨辰丷
墨辰丷원래의
2018-06-12 17:07:192053검색

이 글에서는 주로 PHP에서 유사도가 가장 높은 문자열을 쿼리하는 방법을 소개합니다. 여기에는 유사성 알고리즘을 구현하는 PHP 연산 기술이 포함됩니다. 필요한 친구는 이를 참조할 수 있습니다. 유사성이 가장 높은 문자열을 쿼리하는 PHP 메서드 예제를 설명합니다.

들어오는 문자열과 배열에 따라 배열에서 유사도가 가장 높은 문자열을 반환합니다.

1. PHP 코드는 다음과 같습니다.

function closest_word($input, $words) {
    $shortest = -1;
    foreach ($words as $word) {
     $lev = levenshtein($input, $word);
     if ($lev == 0) {
      $closest = $word;
      $shortest = 0;
      break;
     }
     if ($lev <= $shortest || $shortest < 0) {
      $closest = $word;
      $shortest = $lev;
     }
    }
    return $closest;
}

2. 코드 예시는 다음과 같습니다.

// 根据传入的州名(可能客户有输错),返回相似度最高的州名称
$united_state_list = array(
&#39;AL&#39;=>"Alabama",
&#39;AK&#39;=>"Alaska",
&#39;AZ&#39;=>"Arizona",
&#39;AR&#39;=>"Arkansas",
&#39;CA&#39;=>"California",
&#39;CO&#39;=>"Colorado",
&#39;CT&#39;=>"Connecticut",
&#39;DE&#39;=>"Delaware",
&#39;DC&#39;=>"District Of Columbia",
&#39;FL&#39;=>"Florida",
&#39;GA&#39;=>"Georgia",
&#39;HI&#39;=>"Hawaii",
&#39;ID&#39;=>"Idaho",
&#39;IL&#39;=>"Illinois",
&#39;IN&#39;=>"Indiana",
&#39;IA&#39;=>"Iowa",
&#39;KS&#39;=>"Kansas",
&#39;KY&#39;=>"Kentucky",
&#39;LA&#39;=>"Louisiana",
&#39;ME&#39;=>"Maine",
&#39;MD&#39;=>"Maryland",
&#39;MA&#39;=>"Massachusetts",
&#39;MI&#39;=>"Michigan",
&#39;MN&#39;=>"Minnesota",
&#39;MS&#39;=>"Mississippi",
&#39;MO&#39;=>"Missouri",
&#39;MT&#39;=>"Montana",
&#39;NE&#39;=>"Nebraska",
&#39;NV&#39;=>"Nevada",
&#39;NH&#39;=>"New Hampshire",
&#39;NJ&#39;=>"New Jersey",
&#39;NM&#39;=>"New Mexico",
&#39;NY&#39;=>"New York",
&#39;NC&#39;=>"North Carolina",
&#39;ND&#39;=>"North Dakota",
&#39;OH&#39;=>"Ohio",
&#39;OK&#39;=>"Oklahoma",
&#39;OR&#39;=>"Oregon",
&#39;PA&#39;=>"Pennsylvania",
&#39;RI&#39;=>"Rhode Island",
&#39;SC&#39;=>"South Carolina",
&#39;SD&#39;=>"South Dakota",
&#39;TN&#39;=>"Tennessee",
&#39;TX&#39;=>"Texas",
&#39;UT&#39;=>"Utah",
&#39;VT&#39;=>"Vermont",
&#39;VA&#39;=>"Virginia",
&#39;WA&#39;=>"Washington",
&#39;WV&#39;=>"West Virginia",
&#39;WI&#39;=>"Wisconsin",
&#39;WY&#39;=>"Wyoming"
);
$input_state = &#39;Wiscsin&#39;;
$state = closest_word($input_state ,array_values($united_state_list));
echo $state;

요약

: 위 내용은 이렇습니다. 이 글의 전체 내용이 모든 분들의 공부에 도움이 되기를 바랍니다.

관련 권장사항:

PHP 버전 QQ 로그인 포트

PHP의 삼항 연산자

배열의 정의, 탐색 및 삭제를 위한 PHP

위 내용은 PHP는 유사성 알고리즘을 구현하기 위해 문자열과 배열을 작동합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.