- end: documentation ( source)
- pack: documentation ( source)
- key: documentation ( source)
<?php
function createStringFromMap($map) {
$chars = array('C*');
end($map);
$last = key($map);
for ($i = $j = $char = 0; $i <= $last; $i++) {
$bit = isset($map[$i]) ? $map[$i] : 0;
$char |= ($bit << (7 - $j));
if (++$j === 8) {
$chars[] = $char;
$j = $char = 0;
}
}
if ($char) {
$chars[] = $char;
}
return call_user_func_array('pack', $chars);
}
$map = array();
$map[1] = 1;
$map[9] = 1;
$map[17] = 1;
$map[25] = 1;
echo createStringFromMap($map);