- var_dump: documentation ( source)
- pow: documentation ( source)
<?php
$arr = ['x', 'y', 'z'];
$mask = 5;
$count = count($arr);
$mask &= pow(2, $count) - 1;
$offset = $count - 1;
$result = [];
foreach ($arr as $k => $v) {
var_dump($offset, $k);
if (($mask >> ($offset - $k)) & 0x1) {
$result[] = $v;
}
}
var_dump($result);