Mike42\Escpos\CapabilityProfile::suggestNearest PHP Method

suggestNearest() public static method

Return choices with smallest edit distance to an invalid input.
public static suggestNearest ( string $input, array $choices, integer $num )
$input string Input that is not a valid choice
$choices array Array of valid choices.
$num integer Number of suggestions to return
    public static function suggestNearest($input, array $choices, $num)
    {
        $distances = array_fill_keys($choices, PHP_INT_MAX);
        foreach ($distances as $word => $_) {
            $distances[$word] = levenshtein($input, $word);
        }
        asort($distances);
        return array_slice(array_keys($distances), 0, min($num, count($choices)));
    }

Usage Example

 public function testSuggestions()
 {
     $input = "orangee";
     $choices = array("apple", "orange", "pear");
     $suggestions = CapabilityProfile::suggestNearest($input, $choices, 1);
     $this->assertEquals(1, count($suggestions));
     $this->assertEquals("orange", $suggestions[0]);
 }