Automattic\WooCommerce\Vendor\GraphQL\Utils
Utils::suggestionList
Given an invalid input string and a list of valid options, returns a filtered list of valid options sorted based on their similarity with the input.
Method of the class: Utils{}
No Hooks.
Returns
Array
Usage
$result = Utils::suggestionList( $input, $options ): array;
- $input(string) (required)
- .
- $options(array
) (required) - .
Utils::suggestionList() Utils::suggestionList code WC 10.8.1
public static function suggestionList(string $input, array $options): array
{
/** @var array<string, int> $optionsByDistance */
$optionsByDistance = [];
$lexicalDistance = new LexicalDistance($input);
$threshold = mb_strlen($input) * 0.4 + 1;
foreach ($options as $option) {
$distance = $lexicalDistance->measure($option, $threshold);
if ($distance !== null) {
$optionsByDistance[$option] = $distance;
}
}
uksort($optionsByDistance, static function (string $a, string $b) use ($optionsByDistance) {
$distanceDiff = $optionsByDistance[$a] - $optionsByDistance[$b];
return $distanceDiff !== 0 ? $distanceDiff : strnatcmp($a, $b);
});
return array_map('strval', array_keys($optionsByDistance));
}