I want to generate 5 random number array and shorting this array using php like the image.
I am using this code that generate 1 array.
<?php
$array=array();
$array_temp=array();
$found=0;
while($found!=5):
$v=rand(1,20);
if(!in_array($v,$array)):
$array[]=$v;
$array_temp[]=$v;
$found++;
endif;
endwhile;
print_r($array_temp);
for($j = 0; $j < count($array); $j ++) {
for($i = 0; $i < count($array)-1; $i ++){
if($array[$i] > $array[$i+1]) {
$temp = $array[$i+1];
$array[$i+1]=$array[$i];
$array[$i]=$temp;
}
}
}
print_r($array);
?>
Use this code and take a look at my comments within the code:
// Generate array having 20 numbers from 1 to 20
$range = range(1, 20);
// Change the order of elements
shuffle($range);
// Split array into 4 chunks each having 5 elements
$unsorted = array_chunk($range, 4);
// Copy original array
$sorted = $unsorted;
// Sort copied array
array_walk($sorted, static fn (array &$value) => sort($value));
Now you have 2 arrays having same elements, but one array is sorted:
print_r($unsorted);
// prints:
Array
(
[0] => Array
(
[0] => 14
[1] => 10
[2] => 3
[3] => 9
)
[1] => Array
(
[0] => 8
[1] => 7
[2] => 19
[3] => 16
)
[2] => Array
(
[0] => 11
[1] => 20
[2] => 5
[3] => 12
)
[3] => Array
(
[0] => 15
[1] => 4
[2] => 2
[3] => 18
)
[4] => Array
(
[0] => 17
[1] => 6
[2] => 1
[3] => 13
)
)
print_r($sorted);
Array
(
[0] => Array
(
[0] => 3
[1] => 9
[2] => 10
[3] => 14
)
[1] => Array
(
[0] => 7
[1] => 8
[2] => 16
[3] => 19
)
[2] => Array
(
[0] => 11
[1] => 12
[2] => 20
[3] => 5
)
[3] => Array
(
[0] => 2
[1] => 4
[2] => 15
[3] => 18
)
[4] => Array
(
[0] => 1
[1] => 6
[2] => 13
[3] => 17
)
)