有此功能:
mt_rand(1,5)
=>在1到5之间随机选择。
和另一种方法:
$items = array(1, 4, 5, 7, 8);
echo $items[array_rand($items)];
我的问题是关于第二种方法。
我想以这种方式使用它。 echo array_rand(1,4,5,7,8);
有没有办法做到这一点,或者我该怎么做?我想先使用不函数定义数组。一切都集中在一个地方。谢谢!
注意:我想将其用于无序列表。
答案 0 :(得分:2)
您可以翻转数组,然后使用array_rand()
,这将反转键值对(因此键成为值,反之亦然)。这意味着当您使用array_rand()
时,您将获得新的密钥-原来是值。
echo array_rand(array_flip($items));
如果要使用可变数量的参数定义函数,也可以使用func_get_args()
来实现。
function random_value() {
// If there were no values returned, return false.
if (func_num_args() == 0) {
return false;
}
// Get all the values supplied
$values = func_get_args();
$random = array_rand($values);
return $values[$random];
}
尽管您可以通过
内联定义数组echo array_rand(array_flip([1, 3, 7, 8]));
答案 1 :(得分:1)
使用辅助功能
您可以添加辅助功能:
function arr_rand($array){
return $array[array_rand($array)];
}