How to reorder an array according to given indexes in PHP

1 Answer

0 votes
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 
     
*/

 



answered Nov 28, 2021 by avibootz

Related questions

1 answer 279 views
1 answer 207 views
1 answer 224 views
1 answer 223 views
1 answer 274 views
1 answer 218 views
1 answer 219 views
...