Automattic\WooCommerce\Vendor\GraphQL\Utils

Utils::suggestionListpublic staticWC 1.0

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.

Метод класса: Utils{}

Хуков нет.

Возвращает

Массив. string>

Использование

$result = Utils::suggestionList( $input, $options ): array;
$input(строка) (обязательный)
.
$options(array) (обязательный)
.

Код Utils::suggestionList() WC 11.0.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));
}