# DataStructure
# Summary
DataStructure provides Map and Vector data structures.
# Installing
DataStructure is available through Packagist (opens new window) and the repository source is at chevere/data-structure (opens new window).
composer require chevere/data-structure
# Map
A Map is a sequential collection of key-value pairs. Keys can be of type integer
and string
.
Create a Map by passing named arguments of any type.
use Chevere\DataStructure\Map;
$map = new Map(foo: $foo, bar: $bar);
# Put Map values
The withPut
method is used to put value(s) to the Map.
$map = $map
->withPut(
foo: $foo,
bar: $bar
);
# Counting Map keys
The count
method returns the number of keys mapped.
$map->count();
// 2
# Map keys
The keys
method is used to retrieve the map keys as an array.
$map->keys();
// ['foo', 'bar']
# Has Map keys
The has
method is used to check if the Map contains the given key(s).
$map->has('foo'); // true
$map->has('notFound'); // false
# Assert has Map keys
The assertHas
method is used to assert if the Map contains the given key(s). It throws an exception when failing to assert.
$map->assertHas('foo');
$map->assertHas('notFound');
# Get Map value
The get
method is used to retrieve the Map value for the given key.
$foo = $map->get('foo');
$bar = $map->get('bar');
# Vector
A Vector is a sequence of values of any type. Keys are of type integer.
Create a Vector by passing values.
use Chevere\DataStructure\Vector;
$vector = new Vector($value1, $value2,);
# Counting Vector keys
The count
method returns the number of keys in the vector.
$vector->count();
// 2
# Vector keys
The keys
method is used to retrieve the map keys as an array.
$map->keys();
// [0, 1]
# Push Vector values
The withPush
method is used to add one or more elements to the end of the sequence.
$with = $vector->withPush($value,);
# Set Vector values
The withSet
method is used to set the value at the given position.
$with = $vector->withSet(0, $value);
# Unshift Vector values
The withUnshift
method is used to prepend one or more elements at the beginning of the sequence.
$with = $vector->withUnshift($value,);
# Insert Vector values
The withInsert
method is used to insert values at a given position.
$with = $vector->withInsert($pos, ...$values);
# Remove Vector values
The withRemove
method is used to remove one or more values at a given position.
$with = $vector->withRemove($pos,);
# Has Vector values
The has
method is used to check if the Vector contains the given value(s).
$vector->has($value); // true
$vector->has($notFound); // false
# Assert Vector has values
The assertHas
method is used to assert if the Vector contains the given value(s). It throws an exception when failing to assert.
$vector->assertHas($value);
# Get Vector value
The get
method is used to retrieve the Vector value at the given position.
$value = $vector->get($pos);
# Find values
The find
method is used to find the position for the given value.
$pos = $vector->find($value);
# Contains values
The contains
method is used to check if the Vector contains the given value(s).
$vector->contains($value); // bool