serima/hashee

hash for search

Maintainers

Details

github.com/serima/Hashee

Source

Issues

Installs: 14

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/serima/hashee

0.0.1 2015-10-11 16:37 UTC

This package is not auto-updated.

Last update: 2025-12-21 02:12:54 UTC


README

Build Status Scrutinizer Code Quality

Very simple optimization using hash lookups to search an array.

Installation

composer require serima/hashee

Usage

<?php

use Serima\Hashee\Hashee;

$hashForSearch = array();
Hashee::add($hashForSearch, 'super');
Hashee::add($hashForSearch, 'bad');
Hashee::add($hashForSearch, 'word');

Hashee::in('good', $hashForSearch); // false
Hashee::in('bad', $hashForSearch); // true
Hashee::release($hashForSearch);

$bannedUserNames = array('Jim', 'Taro', 'Fred');
Hashee::addBulk($bannedUserNames);
Hashee::delete($bannedUserNames, 'Fred');
Hashee::in('Jim', $bannedUserNames); // true
Hashee::in('Fred', $bannedUserNames); // false
Hashee::release($bannedUserNames);

Benchmark

You can see the benchmark script in tests/Benchmark.php Graphical here. https://docs.google.com/spreadsheets/d/11zw--aiHH33umh86y_ctiEx87XTsUIK7YMHqctZ_FzM/edit?usp=sharing

% php tests/Benchmark.php
========================================
elementNumber : 5
in_array: 0.030714988708496
hashee:   0.013134956359863
========================================
========================================
elementNumber : 10
in_array: 0.032805919647217
hashee:   0.012555122375488
========================================
========================================
elementNumber : 100
in_array: 0.15763115882874
hashee:   0.010236978530884
========================================
========================================
elementNumber : 1000
in_array: 1.3289721012115
hashee:   0.010061025619507
========================================
========================================
elementNumber : 10000
in_array: 13.358424901962
hashee:   0.0097849369049072
========================================

Thanks

Hashee is inspired by this entry written by @mtdowling.

Favor Hash Lookups Over Array Searches

I coded benchmark script using example from it.

References

http://stackoverflow.com/questions/2473989/list-of-big-o-for-php-functions

LICENSE

MIT License.