3v4l.org

run code in 300+ PHP versions simultaneously
<?php $old_arr = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40); $size = count($old_arr); for($i=0;$i<=39;$i++){ if ($i<=7){ $a[] = $old_arr[$i]; }elseif ($i>7 && $i<=15){ $b[] = $old_arr[$i]; }elseif ($i>15 && $i<=23){ $c[] = $old_arr[$i]; }elseif ($i>23 && $i<=31){ $d[] = $old_arr[$i]; } elseif ($i>31){ $e[] = $old_arr[$i]; } } print_r($a); print_r($b); print_r($c); print_r($d); print_r($e); $new_arr = array(); $group_order[] = array(); unset($group_order[0]); $group_order = array_values($group_order); $temp = 0; while(count($new_arr)<$size){ if (!empty($group_order)){ $temp = $group_order[4]; } foreach ($group_order as $i => $value) { unset($group_order[$i]); } $group_order = array_values($group_order); while(count($group_order)<5){ $x=mt_rand(1,5); if(in_array($x,$group_order) == false && $x != $temp){ $group_order[] = $x; $temp = 0; } } print_r($group_order); foreach ($group_order as $value){ if ($value == 1){ $idx = mt_rand(0,(count($a)-1)); $new_arr[] = $a[$idx]; unset($a[$idx]); $a = array_values($a); }elseif ($value == 2){ $idx = mt_rand(0,(count($b)-1)); $new_arr[] = $b[$idx]; unset($b[$idx]); $b = array_values($b); }elseif ($value == 3){ $idx = mt_rand(0,(count($c)-1)); $new_arr[] = $c[$idx]; unset($c[$idx]); $c = array_values($c); }elseif ($value == 4){ $idx = mt_rand(0,(count($d)-1)); $new_arr[] = $d[$idx]; unset($d[$idx]); $d = array_values($d); }elseif ($value == 5){ $idx = mt_rand(0,(count($e)-1)); $new_arr[] = $e[$idx]; unset($e[$idx]); $e = array_values($e); } } } print_r($new_arr); ?>

preferences:
31.44 ms | 402 KiB | 5 Q