This project handles super-fast arrays of bits stored internally as integers.
It is as simple as creating the bit array indicating its length. And you are not limited to one integer!
$bitarray = new BitArray(2129);
This package offers methods to get, set and unset bits, and the typical logical bitwise operators and, or, xor and not methods.
You can also fill a bit array with a string where, obviously, only 0's and 1's are allowed.
Using composer: either
$ composer require oscarpb/bitarray:0.2.0
or create a composer.json
file containing
{
"require": {
"oscarpb/bitarray": "0.2.0"
}
}
and run
$ composer install
Create a test.php
file containing
<?php
require __DIR__ . '/vendor/autoload.php';
use Oscarpb\Bitarray\BitArray;
$bitarray = new BitArray(8);
$bitarray->setBit(0);
$bitarray->setBit(2);
$bitarray->setBit(4);
$bitarray->setBit(6);
$bitarray->print();
This should print:
01010101
Other options:
<?php
require __DIR__ . '/vendor/autoload.php';
use Oscarpb\Bitarray\BitArray;
$bitarray = new BitArray(8);
$bitarray->setBit(2);
$bitarray->setBit(4);
$bitarray->unsetBit(2);
$bitarray->getBit(4); // true
$bitarray->getBit(2); // false (it has been unset)
$bitarray2 = new BitArray(8);
$bitarray2->setBit(7);
$bitarray->not();
$bitarray->and($bitarray2);
$bitarray->or($bitarray2);
$bitarray->xor($bitarray2);
$bitarray3 = new BitArray(8);
$bitarray3->fillFromString($bitarray->print());
See the examples folder for more information.
This package is distributed under the MIT license.