function print_arr($arr) {
$size = count($arr);
for ($i = 0; $i < $size; $i++) {
echo $arr[$i] . " ";
}
echo "\n";
}
function reverse(&$arr, $start, $end) {
for ($i = $start, $j = $end; $i <= $end && $j > $i; $i++, $j--) {
$temp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $temp;
}
}
function split(&$arr, $split_point) {
$size = count($arr);
if ($size <= 1 && $split_point < 1 && $split_point >= $size) {
return;
}
// reverse first part
reverse($arr, 0, $split_point - 1);
// reverse second part
reverse($arr, $split_point, $size - 1);
// reverse all array
reverse($arr, 0, $size - 1);
}
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
$split_point = 3;
split($arr, $split_point);
print_arr($arr);
/*
run:
4 5 6 7 8 9 0 1 2 3
*/