baygin / php-search-algorithms
php数组搜索算法实现,可作为composer包使用
1.1.0
2023-04-29 22:59 UTC
Requires
- php: >=8.2
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-10-01 00:20:39 UTC
README
PHP 8中的搜索算法实现,以最快速度找到查询值。
使用方法
安装
Git 克隆
git clone https://github.com/baygin/php-search-algorithms.git
Composer
composer require baygin/php-search-algorithms
二分查找
数组
$array = []; for ($index = 0; $index < 100 * 10000; $index++) { $array[] = $index + 1; } $search = new BinarySearch(); $search->setCompareCallback(fn ($current, $searchValue) => $current === $searchValue) ->setDirectionCallback(fn ($current, $searchValue) => $current < $searchValue) ->setArray($array) ->setSearchValue(98589) ->search(); $foundIndex = $search->getFoundIndex(); $foundValue = $search->getFoundValue();
数组中的数组
$array = []; for ($index = 0; $index < 100 * 10000; $index++) { $array[] = [ "id" => $index + 1, "first" => "Baris {$index}", "last" => "Manco {$index}", ]; } $search = new BinarySearch(); $search->setCompareCallback(fn ($current, $searchValue) => $current["id"] === $searchValue) ->setDirectionCallback(fn ($current, $searchValue) => $current["id"] < $searchValue) ->setArray($array) ->setSearchValue(81300) ->search(); $foundIndex = $search->getFoundIndex(); $foundValue = $search->getFoundValue();
数组中的对象
$array = []; for ($index = 0; $index < 100 * 10000; $index++) { $array[] = (object) [ "id" => $index + 1, "first" => "Baris {$index}", "last" => "Manco {$index}", ]; } $search = new BinarySearch(); $search->setCompareCallback(fn ($current, $searchValue) => $current->id === $searchValue) ->setDirectionCallback(fn ($current, $searchValue) => $current->id < $searchValue) ->setArray($array) ->setSearchValue(81300) ->search(); $foundIndex = $search->getFoundIndex(); $foundValue = $search->getFoundValue();
测试
composer test
贡献
如果您想为此库的开发做出贡献,可以打开一个问题或提交一个pull请求。
许可证
许可协议为GPL3。更多信息请见 LICENSE 。