PHP code example of lion1102 / fuzzy
1. Go to this page and download the library: Download lion1102/fuzzy library. Choose the download type require. 2. Extract the ZIP file and open the index.php. 3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lion1102 / fuzzy example snippets
Fuzzy\Fuzzy;
$arrValidateData = [
[
'id' => 'A1',
'name' => 'Nguyen Van Truong',
],
[
'id' => 'A2',
'name' => 'Mr. Nguyen Van Truong',
],
[
'id' => 'A3',
'name' => 'Nguyen Van Truong 様',
],
[
'id' => 'A4',
'name' => 'Nguy Van Trung 様',
],
[
'id' => 'A5',
'name' => '接待費 (Mr. Nguy Van Trung)',
],
[
'id' => 'A6',
'name' => 'PROTO Solutionラボサポート (8月分, Mr. Nguyen Van Truong)',
],
];
$arrSearchData = [
[
'id' => 'B1',
'name' => 'Nguyen Van Truong'
],
[
'id' => 'B2',
'name' => 'Nguyen Van Trung'
],
[
'id' => 'B3',
'name' => 'Nguyen Van Trong'
],
[
'id' => 'B4',
'name' => 'Nguy Van Trung'
],
];
$arrOptions = ['keys' => ['name'], 'caseSensitive' => 'false', ' Trung
)
[score] => 0.058823529411765
)
[2] => Array
(
[item] => Array
(
[id] => B3
[name] => Nguyen Van Trong
)
[score] => 0.058823529411765
)
[3] => Array
(
[item] => Array
(
[id] => B4
[name] => Nguy Van Trung
)
[score] => 0.17647058823529
)
)
)
)
[1] => Array
(
[A2] => Array
(
[Mr. Nguyen Van Truong] => Array
(
[0] => Array
(
[item] => Array
(
[id] => B1
[name] => Nguyen Van Truong
)
[score] => 0.19047619047619
)
[1] => Array
(
[item] => Array
(
[id] => B2
[name] => Nguyen Van Trung
)
[score] => 0.23809523809524
)
[2] => Array
(
[item] => Array
(
[id] => B3
[name] => Nguyen Van Trong
)
[score] => 0.23809523809524
)
[3] => Array
(
[item] => Array
(
[id] => B4
[name] => Nguy Van Trung
)
[score] => 0.33333333333333
)
)
)
)
[2] => Array
(
[A3] => Array
(
[Nguyen Van Truong 様] => Array
(
[0] => Array
(
[item] => Array
(
[id] => B1
[name] => Nguyen Van Truong
)
[score] => 0.10526315789474
)
[1] => Array
(
[item] => Array
(
[id] => B2
[name] => Nguyen Van Trung
)
[score] => 0.15789473684211
)
[2] => Array
(
[item] => Array
(
[id] => B3
[name] => Nguyen Van Trong
)
[score] => 0.15789473684211
)
[3] => Array
(
[item] => Array
(
[id] => B4
[name] => Nguy Van Trung
)
[score] => 0.26315789473684
)
)
)
)
[3] => Array
(
[A4] => Array
(
[Nguy Van Trung 様] => Array
(
[0] => Array
(
[item] => Array
(
[id] => B4
[name] => Nguy Van Trung
)
[score] => 0.125
)
[1] => Array
(
[item] => Array
(
[id] => B2
[name] => Nguyen Van Trung
)
[score] => 0.25
)
[2] => Array
(
[item] => Array
(
[id] => B1
[name] => Nguyen Van Truong
)
[score] => 0.3125
)
[3] => Array
(
[item] => Array
(
[id] => B3
[name] => Nguyen Van Trong
)
[score] => 0.3125
)
)
)
)
[4] => Array
(
[A5] => Array
(
[接待費 (Mr. Nguy Van Trung)] => Array
(
[0] => Array
(
[item] => Array
(
[id] => B4
[name] => Nguy Van Trung
)
[score] => 0.41666666666667
)
[1] => Array
(
[item] => Array
(
[id] => B2
[name] => Nguyen Van Trung
)
[score] => 0.5
)
[2] => Array
(
[item] => Array
(
[id] => B1
[name] => Nguyen Van Truong
)
[score] => 0.54166666666667
)
[3] => Array
(
[item] => Array
(
[id] => B3
[name] => Nguyen Van Trong
)
[score] => 0.54166666666667
)
)
)
)
[5] => Array
(
[A6] => Array
(
[PROTO Solutionラボサポート (8月分, Mr. Nguyen Van Truong)] => Array
(
[0] => Array
(
[item] => Array
(
[id] => B1
[name] => Nguyen Van Truong
)
[score] => 0.5
)
[1] => Array
(
[item] => Array
(
[id] => B2
[name] => Nguyen Van Trung
)
[score] => 0.5
)
[2] => Array
(
[item] => Array
(
[id] => B3
[name] => Nguyen Van Trong
)
[score] => 0.5
)
[3] => Array
(
[item] => Array
(
[id] => B4
[name] => Nguy Van Trung
)
[score] => 0.5
)
)
)
)
)*/
/*
@param {array} $arrValidateData The validation associative array to fuzzy search on.
@param {array} $arrSearchData The pattern associative string to fuzzy search on.
@param {array} arrOptions The search conditions array.
@param {string} $key1, $key2 The specificed key in validation array
@return {array} A list of all search matches.
*/
$books = [
[
"title" => "Old Man's War",
"author" => [
"firstName" => "John",
"lastName" => "Scalzi"
]
]
];
$fuse = new \Fuse\Fuse($books, [
"keys" => [ "title", "author.firstName" ]
]);
/*
* @param {array|object} $data The object or associative array being searched
* @param {string} $path The path to the target property
*/
'getFn' => function ($data, $path) {
// Example using a ->get() method on objects and simple index access on arrays
return is_object($data)
? $data->get($path)
: $data[$path];
}
$fuse = new \Fuse\Fuse($books, [
"keys" => [
[
"name" => "title",
"weight" => 0.3
],
[
"name" => "author",
"weight" => 0.7
]
]
]);