Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

wyndow/fuzzywuzzy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

3 Commits

Repository files navigation

FuzzyWuzzy

Fuzzy string matching for PHP, based on the python library of the same name.

Requirements

  • PHP 5.4 or higher

Installation

Using Composer

composer require wyndow/fuzzywuzzy

Usage

use FuzzyWuzzy\Fuzz;
use FuzzyWuzzy\Process;

$fuzz = new Fuzz();
$process = new Process($fuzz); // $fuzz is optional here, and can be omitted.

Simple Ratio

96">>>> $fuzz->ratio('this is a test', 'this is a test!')
=> 96

Partial Ratio

100">>>> $fuzz->partialRatio('this is a test', 'this is a test!')
=> 100

Token Sort Ratio

90 >>> $fuzz->tokenSortRatio('fuzzy wuzzy was a bear', 'wuzzy fuzzy was a bear') => 100">>>> $fuzz->ratio('fuzzy wuzzy was a bear', 'wuzzy fuzzy was a bear')
=> 90
>>> $fuzz->tokenSortRatio('fuzzy wuzzy was a bear', 'wuzzy fuzzy was a bear')
=> 100

Token Set Ratio

84 >>> $fuzz->tokenSetRatio('fuzzy was a bear', 'fuzzy fuzzy was a bear') => 100">>>> $fuzz->tokenSortRatio('fuzzy was a bear', 'fuzzy fuzzy was a bear')
=> 84
>>> $fuzz->tokenSetRatio('fuzzy was a bear', 'fuzzy fuzzy was a bear')
=> 100

Process

>> $c = $process->extract('new york jets', $choices, null, null, 2) => FuzzyWuzzy\Collection {#205} >>> $c->toArray() => [ [ "New York Jets", 100, ], [ "New York Giants", 78, ], ] >>> $process->extractOne('cowboys', $choices) => [ "Dallas Cowboys", 90, ]">>>> $choices = ['Atlanta Falcons', 'New York Jets', 'New York Giants', 'Dallas Cowboys']
>>> $c = $process->extract('new york jets', $choices, null, null, 2)
=> FuzzyWuzzy\Collection {#205}
>>> $c->toArray()
=> [
[
"New York Jets",
100,
],
[
"New York Giants",
78,
],
]
>>> $process->extractOne('cowboys', $choices)
=> [
"Dallas Cowboys",
90,
]

You can also pass additional parameters to extractOne to make it use a specific scorer.

[ "Dallas Cowboys", 38, ] >>> $process->extractOne('cowbell', $choices, null, [$fuzz, 'tokenSetRatio']) => [ "Dallas Cowboys", 57, ]">>>> $process->extractOne('cowbell', $choices, null, [$fuzz, 'ratio'])
=> [
"Dallas Cowboys",
38,
]
>>> $process->extractOne('cowbell', $choices, null, [$fuzz, 'tokenSetRatio'])
=> [
"Dallas Cowboys",
57,
]

Caveats

Unicode strings may produce unexpected results. We intend to correct this in future versions.

Further Reading

About

Fuzzy string matching for PHP

Topics

Resources

Readme

Stars

Watchers

Forks

Packages

Contributors

Languages