
<?php
class Solution {
function reconstructQueue($people) {
usort($people, function($x, $y){
if ($x[0] != $y[0]) {
return $x[0] - $y[0];
} else {
return $y[1] - $x[1];
}
});
$len = count($people);
$ans = new SplFixedArray($len);
foreach ($people as $person) {
$frontNum = $person[1];
$i = 0;
while ($frontNum >= 0) {
if (is_null($ans[$i])) {
--$frontNum;
}
++$i;
}
$ans[--$i] = $person;
}
return $ans->toArray();
}
}
$s = new Solution();
var_dump($s->reconstructQueue([[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]));