<?php
function pack_array_of_bools_to_string(array $bools): string
{
$str = '';
$l = count($bools);
for ($i = 0; $i < $l; ++$i) {
$str .= $bools ? '1' : '0';
}
return $str;
}
function unpack_string_to_array_of_bools(string $packed): array
{
$arr = [];
$l = strlen($packed) - 1;
for ($i = 0; $i < $l; ++$i) {
$arr[] = $packed[$i] === '1';
}
return $arr;
}
$arr = [
true, true, false, true, false, false, true, true, false, false, false, true, false
];
var_dump(
pack_array_of_bools_to_string($arr),
unpack_string_to_array_of_bools('1101001100010')
);
preferences:
48.5 ms | 402 KiB | 5 Q