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
    ]
  ]
]);