rap2hpoutre/similar-text-finder
| Install | |
|---|---|
composer require rap2hpoutre/similar-text-finder |
|
| Latest Version: | 1.1.0 |
| PHP: | ^7.0|^8.0 |
| License: | MIT |
| Last Updated: | Sep 1, 2023 |
| Links: | GitHub · Packagist |
Similar Text Finder
TL;DR
Similar text finder. Install via composer, works with any framework: Laravel, Slim, Symfony, etc.

// Init Similar Text Finder with a needle and a haystack
$text_finder = new \SimilarText\Finder('bananna', ['apple', 'banana', 'kiwi']);
// Get first similar word (it's banana)
echo $text_finder->first();
Installation
Install with composer
composer require rap2hpoutre/similar-text-finder.
That's all.
You can now use it in your framework's controller, or wherever you want (you don't need a framework anyway).
Usage
Quick start
Just build a new Similar Text Finder like this:
$tf = new \SimilarText\Finder($needle, $haystack);
$needle may be the user input and $haystack should be an array with all your suggestion. You can display the closest response like this:
echo 'Did you mean ' $tf->first() . ' ?';
Or use it in your favorite template engine (Twig, Blade, etc.)
You can get all your suggestion ordered by most approching words like this:
$all = $tf->all();
Example in raw PHP
use SimilarText\Finder;
// User input with a typo (you could get it from $_GET)
$needle = 'tmatoes';
// Your list (from your database or an API)
$haystack = ['salad', 'tomatoes', 'onions', 'mates'];
// Init Text Finder
$finder = new Finder($needle, $haystack);
// Display all results ordered by the most approching
$results = $finder->all();
echo implode(', ', $results);
// You should see something like "tomatoes, mates, onions, salad", yohoo.
Related Packages
A powerful, zero-config fuzzy search package for Laravel with fluent API
Laravel Searchy makes user driven searching easy with fuzzy search, basic string...
Laravel Searchy makes user driven searching easy with fuzzy search, basic string...
