function move_negative_to_end(&$arr) {
$len = sizeof($arr);
$temp = array(0, $len, NULL);
$j = 0;
for ($i = 0; $i < $len ; $i++)
if ($arr[$i] >= 0 )
$temp[$j++] = $arr[$i];
if ($j == $len || $j == 0)
return;
for ($i = 0 ; $i < $len ; $i++)
if ($arr[$i] < 0)
$temp[$j++] = $arr[$i];
for($i = 0; $i < $len; $i++)
$arr[$i] = $temp[$i];
}
$arr = array(-1, 8, -21, -3, -2, 7, 15, -30, -40, 4, 6, 9);
move_negative_to_end($arr);
for ($i = 0; $i < sizeof($arr); $i++)
echo $arr[$i] . " ";
/*
run:
8 7 15 4 6 9 -1 -21 -3 -2 -30 -40
*/