<?php
function array_rand_cryptographically_secure(array $array): int|string {
if (!$array) {
throw new ValueError ('Argument #1 ($array) cannot be empty');
}
return key(array_slice($array, random_int(0, count($array) - 1), 1, true));
}
$tests = [
[5, 6, 7],
['a' => 1, 'b' => 2, 'c' => 3],
['zero', 4 => 'four', 9 => 'nine']
];
foreach ($tests as $test) {
echo array_rand_cryptographically_secure($test) . "\n";
}
- Output for 8.1.5
- 1
a
4
- Output for 8.0.5, 8.1.4
- 2
c
0
- Output for 8.1.3
- 1
c
0
- Output for 8.1.2
- 2
b
4
- Output for 8.0.8, 8.1.1
- 0
a
0
- Output for 8.0.3, 8.0.16, 8.0.18, 8.1.0
- 1
c
9
- Output for 8.0.17
- 0
c
4
- Output for 8.0.15
- 0
b
0
- Output for 8.0.14
- 2
c
9
- Output for 8.0.13
- 2
a
0
- Output for 8.0.12
- 1
c
4
- Output for 8.0.11
- 0
c
0
- Output for 8.0.10
- 2
a
4
- Output for 8.0.9
- 0
a
4
- Output for 8.0.7
- 1
a
0
- Output for 8.0.6
- 2
c
4
- Output for 8.0.2
- 2
a
9
- Output for 8.0.1
- 2
b
0
- Output for 7.4.0 - 7.4.29
- Parse error: syntax error, unexpected '|', expecting '{' in /in/s8oa4 on line 3
Process exited with code 255.
preferences:
74.19 ms | 401 KiB | 57 Q