3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php // input misspelled word $input = 'carrrot'; // array of words to check against $words = array('apple','pineapple','banana','orange', 'radish','carrot','pea','bean','potato'); // no shortest distance found, yet $shortest = -1; var_dump($words); // loop through words to find the closest foreach ($words as $word) { // calculate the distance between the input word, // and the current word $lev = levenshtein($input, $word); // check for an exact match if ($lev == 0) { // closest word is this one (exact match) $closest = $word; $shortest = 0; // break out of the loop; we've found an exact match break; } // if this distance is less than the next found shortest // distance, OR if a next shortest word has not yet been found if ($lev <= $shortest || $shortest < 0) { // set the closest match, and shortest distance $closest = $word; $shortest = $lev; } } echo "Input word: $input\n"; if ($shortest == 0) { echo "Exact match found: $closest\n"; } else { echo "Did you mean: $closest?\n"; }
Output for 4.3.0 - 7.1.0
array(9) { [0]=> string(5) "apple" [1]=> string(9) "pineapple" [2]=> string(6) "banana" [3]=> string(6) "orange" [4]=> string(6) "radish" [5]=> string(6) "carrot" [6]=> string(3) "pea" [7]=> string(4) "bean" [8]=> string(6) "potato" } Input word: carrrot Did you mean: carrot?