Download the PHP package syaiful6/headbanger without Composer
On this page you can find all versions of the php package syaiful6/headbanger. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download syaiful6/headbanger
More information about syaiful6/headbanger
Files in syaiful6/headbanger
Package headbanger
Short Description Headbanger! PHP Data structure
License MIT
Homepage https://github.com/syaiful6/hedobangya
Informations about the package headbanger
Headbanger
PHP data structure and or collections.
Motivation: PHP only give us array and object as compound type. There are no list, hash table, set, etc. Array on PHP doest it all. This make operation on array not predictable, is sometimes act as ordered set, list, ordered map. This package aim to provide some basic data structure to cover this gap.
Install
This package contains implementations of Map, List, Set and Str. We consider string as container, because it can be accessed via array notation and when we want to iterate string, we actually want to iterate over character.
Map
Python call this dict, Ruby call this type Hash. Whatever the name, this data type can 'map' key value pair. Typically the key are unique (within one map).
The main operations on a map are storing a value with some key and extracting the value given the key. It's also should possible to delete a key-value pair for the given key.
This package provide one implementation for this data type. that also implements Countable, Traversable and ArrayAccess. So you can treat this instance as array. To delete key-value pair use
Note: is unordered map and not permit adding item during iteration, replacing a key-value is fine. Iterate over map will give you the key only, with this key you can access the value anyway. If you need the value use method, if you need both use $map = new Headbanger\HashMap(); // Add item, or just give map your array or any traversable on constructor $map['one'] = 1; $map['two'] = 2; $map['three'] = 3; // deleting unset($map['one']); // check if item exists isset($map['one']); Stackpushpop``` (without argument). However dont use ArrayList as Queue, they are not efficient for this purpose. But it possible.
Set
A set is an unordered collection with no duplicate elements. The common operations are remove duplicates entries and membership testing. Set also support mathematical operations like union, intersection, difference, etc.