- var_dump: documentation ( source)
- hex2bin: documentation ( source)
- str_split: documentation ( source)
- unpack: documentation ( source)
<?php
$availablePieces = [];
$bitfield = hex2bin('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0');
$bytes = unpack('N', $bitfield)[1];
foreach (str_split($bytes) as $index => $byte) {
$availablePieces[($index * 8) + 0] = $byte & 0b10000000 !== 0;
$availablePieces[($index * 8) + 1] = $byte & 0b01000000 !== 0;
$availablePieces[($index * 8) + 2] = $byte & 0b00100000 !== 0;
$availablePieces[($index * 8) + 3] = $byte & 0b00010000 !== 0;
$availablePieces[($index * 8) + 4] = $byte & 0b00001000 !== 0;
$availablePieces[($index * 8) + 5] = $byte & 0b00000100 !== 0;
$availablePieces[($index * 8) + 6] = $byte & 0b00000010 !== 0;
$availablePieces[($index * 8) + 7] = $byte & 0b00000001 !== 0;
}
var_dump($availablePieces);