function print_arr($arr) {
$size = count($arr);
for ($i = 0; $i < $size; $i++) {
echo $arr[$i] . " ";
}
echo "\n";
}
function reorder(&$arr, & $indexes, $i) {
$size = count($arr);
if ($i < $size) {
$data = $arr[$i];
reorder($arr, $indexes, $i + 1);
$arr[$indexes[$i]] = $data;
}
}
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$indexes = array(1, 0, 4, 3, 2, 5, 9, 7, 8, 6);
print_arr($arr);
print_arr($indexes);
reorder($arr, $indexes, 0);
print_arr($arr);
/*
run:
1 2 3 4 5 6 7 8 9 10
1 0 4 3 2 5 9 7 8 6
2 1 5 4 3 6 10 8 9 7
*/