PHP中有没有办法从数组列表中选择一个随机数组?这是我的代码:
$array1 = "FFFFFF 000000 111111 222222 333333 444444";
$array2 = "1111 2222 3333 4444 5555 6666";
$array3 = "111 222 333 444 555 666";
$array4 = "11 22 33 44 55 66";
$array5 = "a b c d e f";
$array6 = "1 2 3 4 5 6";
我想这样做它从数组列表中选择一个随机数组,但我无法弄清楚如何。我试过了
$array . rand(1,9)
但不幸的是,PHP不会像我想要的那样编译..
答案 0 :(得分:1)
如果您要将所有这些数组放在另一个数组中,可以使用arr0 = [[0,50],[60,80],[100,150]] # 0-50, 60-80, etc.
arr1 = [[4,8],[15,20]] # 4-8, 15-20, etc.
# arr0 - arr1 magic
result = [[0,3],[9,14],[21,50],[60,80],[100,150]] # 0-3, 9-14, etc.
选择一个随机数组。
http://php.net/manual/en/function.array-rand.php
根据您输入的位置,这可能对您不起作用,但我更倾向于使用此解决方案在两个硬限制之间生成随机数,因为前者是动态的(无论多少条目都无关紧要)在数组的数组中),而后者不是(虽然它可以成为)。
正如GordonM所指出的,array_rand
使用libc随机数生成器,已知它比某些替代方案慢。使用更好的随机数生成器的动态替代方法是使用array_rand
,使用数组的长度作为最大值:
mt_rand
编辑:正如Jacopo在评论中指出的那样,值得注意的是你的数组目前是字符串。
$array = array(
// all your other arrays here
);
$selected = $array[mt_rand(0, count($array) - 1)];
应该(我假设):
$array1 = "FFFFFF 000000 111111 222222 333333 444444";
答案 1 :(得分:0)
你可以这样做:
$array1 = "FFFFFF 000000 111111 222222 333333 444444";
$array2 = "1111 2222 3333 4444 5555 6666";
$array3 = "111 222 333 444 555 666";
$array4 = "11 22 33 44 55 66";
$array5 = "a b c d e f";
$array6 = "1 2 3 4 5 6";
$a = rand(1,6);
$str = 'array'.$a;
$arr = ${$str};
var_dump($arr);
/*
This would give you random array variables like this:
- $array2
- $array5
- $array1
- $array3
- ...
*/
希望这有帮助!
答案 2 :(得分:0)
你有一个简单的变量,而不是一个数组。试试这个:
$array1 = "FFFFFF 000000 111111 222222 333333 444444";
$array2 = "1111 2222 3333 4444 5555 6666";
然后转换为数组:
$a = explode(" ", $array1);
$b = explode(" ", $array2);
最后,打印:
echo array_rand($a,3);
echo array_rand($b,3);
此致