3v4l.org

run code in 300+ PHP versions simultaneously
<?php $first = [1, 2, 3, 4]; $second = [10, 20, 30, 40]; $third = []; $fourth = ['a', 'b']; $pool = [$first, $second, $third, $fourth]; $result = []; while ($pool) { $pullFrom = array_rand($pool); if (!$pool[$pullFrom]) { unset($pool[$pullFrom]); continue; } $result[] = array_shift($pool[$pullFrom]); } var_export($result);
Output for 8.1.10
array ( 0 => 'a', 1 => 10, 2 => 20, 3 => 30, 4 => 'b', 5 => 1, 6 => 40, 7 => 2, 8 => 3, 9 => 4, )
Output for 8.1.9
array ( 0 => 'a', 1 => 1, 2 => 'b', 3 => 2, 4 => 10, 5 => 3, 6 => 20, 7 => 30, 8 => 40, 9 => 4, )
Output for 8.1.8
array ( 0 => 10, 1 => 20, 2 => 1, 3 => 2, 4 => 30, 5 => 3, 6 => 4, 7 => 'a', 8 => 'b', 9 => 40, )
Output for 8.1.7
array ( 0 => 10, 1 => 1, 2 => 2, 3 => 20, 4 => 'a', 5 => 'b', 6 => 30, 7 => 3, 8 => 4, 9 => 40, )
Output for 8.1.6
array ( 0 => 10, 1 => 'a', 2 => 20, 3 => 1, 4 => 30, 5 => 'b', 6 => 2, 7 => 40, 8 => 3, 9 => 4, )
Output for 7.4.14, 8.1.5
array ( 0 => 1, 1 => 2, 2 => 3, 3 => 'a', 4 => 4, 5 => 'b', 6 => 10, 7 => 20, 8 => 30, 9 => 40, )
Output for 8.0.16, 8.1.4
array ( 0 => 'a', 1 => 'b', 2 => 10, 3 => 1, 4 => 2, 5 => 3, 6 => 4, 7 => 20, 8 => 30, 9 => 40, )
Output for 8.1.3
array ( 0 => 'a', 1 => 1, 2 => 'b', 3 => 10, 4 => 20, 5 => 30, 6 => 40, 7 => 2, 8 => 3, 9 => 4, )
Output for 8.1.2
array ( 0 => 'a', 1 => 10, 2 => 20, 3 => 30, 4 => 1, 5 => 40, 6 => 'b', 7 => 2, 8 => 3, 9 => 4, )
Output for 8.1.1
array ( 0 => 10, 1 => 'a', 2 => 1, 3 => 20, 4 => 2, 5 => 30, 6 => 'b', 7 => 3, 8 => 4, 9 => 40, )
Output for 8.1.0
array ( 0 => 'a', 1 => 1, 2 => 10, 3 => 2, 4 => 'b', 5 => 20, 6 => 3, 7 => 30, 8 => 4, 9 => 40, )
Output for 8.0.22 - 8.0.23
array ( 0 => 'a', 1 => 'b', 2 => 1, 3 => 2, 4 => 10, 5 => 3, 6 => 4, 7 => 20, 8 => 30, 9 => 40, )
Output for 8.0.21
array ( 0 => 1, 1 => 2, 2 => 10, 3 => 20, 4 => 3, 5 => 4, 6 => 'a', 7 => 30, 8 => 40, 9 => 'b', )
Output for 8.0.20
array ( 0 => 1, 1 => 'a', 2 => 10, 3 => 2, 4 => 20, 5 => 30, 6 => 3, 7 => 40, 8 => 4, 9 => 'b', )
Output for 8.0.6, 8.0.19
array ( 0 => 'a', 1 => 'b', 2 => 10, 3 => 20, 4 => 30, 5 => 40, 6 => 1, 7 => 2, 8 => 3, 9 => 4, )
Output for 8.0.18
array ( 0 => 10, 1 => 1, 2 => 'a', 3 => 20, 4 => 30, 5 => 'b', 6 => 2, 7 => 3, 8 => 4, 9 => 40, )
Output for 8.0.17
array ( 0 => 10, 1 => 1, 2 => 'a', 3 => 'b', 4 => 2, 5 => 3, 6 => 4, 7 => 20, 8 => 30, 9 => 40, )
Output for 8.0.15
array ( 0 => 1, 1 => 10, 2 => 20, 3 => 30, 4 => 'a', 5 => 40, 6 => 2, 7 => 'b', 8 => 3, 9 => 4, )
Output for 8.0.14
array ( 0 => 1, 1 => 2, 2 => 'a', 3 => 'b', 4 => 3, 5 => 10, 6 => 20, 7 => 30, 8 => 4, 9 => 40, )
Output for 8.0.13
array ( 0 => 1, 1 => 2, 2 => 3, 3 => 10, 4 => 'a', 5 => 4, 6 => 20, 7 => 30, 8 => 40, 9 => 'b', )
Output for 8.0.12
array ( 0 => 1, 1 => 2, 2 => 'a', 3 => 'b', 4 => 10, 5 => 3, 6 => 4, 7 => 20, 8 => 30, 9 => 40, )
Output for 8.0.11
array ( 0 => 'a', 1 => 1, 2 => 10, 3 => 20, 4 => 'b', 5 => 2, 6 => 3, 7 => 30, 8 => 40, 9 => 4, )
Output for 8.0.10
array ( 0 => 'a', 1 => 'b', 2 => 10, 3 => 1, 4 => 20, 5 => 2, 6 => 3, 7 => 30, 8 => 40, 9 => 4, )
Output for 7.4.10, 7.4.13, 8.0.9
array ( 0 => 10, 1 => 20, 2 => 1, 3 => 30, 4 => 'a', 5 => 40, 6 => 'b', 7 => 2, 8 => 3, 9 => 4, )
Output for 8.0.8
array ( 0 => 1, 1 => 2, 2 => 'a', 3 => 10, 4 => 20, 5 => 'b', 6 => 3, 7 => 30, 8 => 4, 9 => 40, )
Output for 8.0.7
array ( 0 => 'a', 1 => 'b', 2 => 1, 3 => 2, 4 => 10, 5 => 20, 6 => 3, 7 => 4, 8 => 30, 9 => 40, )
Output for 8.0.5
array ( 0 => 10, 1 => 1, 2 => 'a', 3 => 2, 4 => 20, 5 => 30, 6 => 40, 7 => 'b', 8 => 3, 9 => 4, )
Output for 8.0.3
array ( 0 => 'a', 1 => 'b', 2 => 10, 3 => 20, 4 => 1, 5 => 30, 6 => 40, 7 => 2, 8 => 3, 9 => 4, )
Output for 8.0.2
array ( 0 => 10, 1 => 'a', 2 => 1, 3 => 2, 4 => 20, 5 => 3, 6 => 30, 7 => 40, 8 => 'b', 9 => 4, )
Output for 8.0.1
array ( 0 => 10, 1 => 'a', 2 => 1, 3 => 2, 4 => 'b', 5 => 3, 6 => 20, 7 => 4, 8 => 30, 9 => 40, )
Output for 7.4.30
array ( 0 => 1, 1 => 10, 2 => 2, 3 => 'a', 4 => 3, 5 => 'b', 6 => 4, 7 => 20, 8 => 30, 9 => 40, )
Output for 7.4.29
array ( 0 => 'a', 1 => 'b', 2 => 1, 3 => 2, 4 => 3, 5 => 10, 6 => 20, 7 => 4, 8 => 30, 9 => 40, )
Output for 7.4.28
array ( 0 => 1, 1 => 2, 2 => 10, 3 => 20, 4 => 30, 5 => 40, 6 => 'a', 7 => 'b', 8 => 3, 9 => 4, )
Output for 7.4.27
array ( 0 => 10, 1 => 1, 2 => 2, 3 => 20, 4 => 3, 5 => 30, 6 => 'a', 7 => 40, 8 => 4, 9 => 'b', )
Output for 7.4.26
array ( 0 => 'a', 1 => 1, 2 => 2, 3 => 'b', 4 => 3, 5 => 10, 6 => 20, 7 => 30, 8 => 40, 9 => 4, )
Output for 7.4.25
array ( 0 => 10, 1 => 20, 2 => 1, 3 => 30, 4 => 40, 5 => 2, 6 => 3, 7 => 4, 8 => 'a', 9 => 'b', )
Output for 7.4.24
array ( 0 => 1, 1 => 2, 2 => 3, 3 => 'a', 4 => 4, 5 => 10, 6 => 'b', 7 => 20, 8 => 30, 9 => 40, )
Output for 7.4.23
array ( 0 => 10, 1 => 1, 2 => 'a', 3 => 2, 4 => 'b', 5 => 20, 6 => 30, 7 => 40, 8 => 3, 9 => 4, )
Output for 7.4.22
array ( 0 => 'a', 1 => 'b', 2 => 1, 3 => 2, 4 => 10, 5 => 3, 6 => 20, 7 => 4, 8 => 30, 9 => 40, )
Output for 7.4.21
array ( 0 => 'a', 1 => 1, 2 => 'b', 3 => 2, 4 => 10, 5 => 3, 6 => 20, 7 => 4, 8 => 30, 9 => 40, )
Output for 7.4.20
array ( 0 => 10, 1 => 'a', 2 => 20, 3 => 'b', 4 => 1, 5 => 30, 6 => 40, 7 => 2, 8 => 3, 9 => 4, )
Output for 7.4.19
array ( 0 => 10, 1 => 20, 2 => 1, 3 => 30, 4 => 40, 5 => 'a', 6 => 'b', 7 => 2, 8 => 3, 9 => 4, )
Output for 7.4.18
array ( 0 => 10, 1 => 1, 2 => 20, 3 => 30, 4 => 2, 5 => 3, 6 => 'a', 7 => 40, 8 => 4, 9 => 'b', )
Output for 7.4.16
array ( 0 => 'a', 1 => 'b', 2 => 1, 3 => 10, 4 => 20, 5 => 30, 6 => 40, 7 => 2, 8 => 3, 9 => 4, )
Output for 7.4.15
array ( 0 => 10, 1 => 1, 2 => 20, 3 => 30, 4 => 'a', 5 => 'b', 6 => 2, 7 => 40, 8 => 3, 9 => 4, )
Output for 7.4.12
array ( 0 => 1, 1 => 2, 2 => 3, 3 => 'a', 4 => 4, 5 => 10, 6 => 20, 7 => 'b', 8 => 30, 9 => 40, )
Output for 7.4.11
array ( 0 => 1, 1 => 'a', 2 => 10, 3 => 2, 4 => 3, 5 => 20, 6 => 4, 7 => 30, 8 => 40, 9 => 'b', )
Output for 7.4.9
array ( 0 => 10, 1 => 20, 2 => 30, 3 => 'a', 4 => 40, 5 => 1, 6 => 2, 7 => 3, 8 => 'b', 9 => 4, )
Output for 7.4.8
array ( 0 => 1, 1 => 10, 2 => 2, 3 => 'a', 4 => 20, 5 => 'b', 6 => 30, 7 => 40, 8 => 3, 9 => 4, )
Output for 7.4.7
array ( 0 => 10, 1 => 'a', 2 => 'b', 3 => 1, 4 => 2, 5 => 20, 6 => 3, 7 => 30, 8 => 40, 9 => 4, )
Output for 7.4.2, 7.4.6
array ( 0 => 1, 1 => 2, 2 => 10, 3 => 3, 4 => 'a', 5 => 'b', 6 => 20, 7 => 4, 8 => 30, 9 => 40, )
Output for 7.4.5
array ( 0 => 1, 1 => 10, 2 => 2, 3 => 'a', 4 => 'b', 5 => 3, 6 => 4, 7 => 20, 8 => 30, 9 => 40, )
Output for 7.4.4
array ( 0 => 'a', 1 => 'b', 2 => 10, 3 => 1, 4 => 2, 5 => 3, 6 => 20, 7 => 4, 8 => 30, 9 => 40, )
Output for 7.4.3
array ( 0 => 'a', 1 => 10, 2 => 1, 3 => 2, 4 => 3, 5 => 4, 6 => 20, 7 => 30, 8 => 40, 9 => 'b', )
Output for 7.4.1
array ( 0 => 1, 1 => 10, 2 => 2, 3 => 'a', 4 => 'b', 5 => 3, 6 => 20, 7 => 4, 8 => 30, 9 => 40, )
Output for 7.4.0
array ( 0 => 1, 1 => 2, 2 => 10, 3 => 3, 4 => 20, 5 => 4, 6 => 'a', 7 => 30, 8 => 40, 9 => 'b', )

preferences:
54.15 ms | 401 KiB | 68 Q