
它的用法也很简单:array_rand($arr[, $num])$arr == 用来取元素的数组$num == 随机取下标的个数其中第二个参数 $num 是可选的,默认为1 。注意:它的返回值在第二个参数大于 1 的时候是一个数组;当第二个参数不设或者传值 1 的时候是一个下标。简单的示例代码如下:1、第二个参数不传值的情况;$arr = Array('a', 'b');$rndKey = array_rand($arr);echo $arr[$rndKey];//输出 a 或者 b2、第二个参数传值大于 1 的情况;$arr = Array('a', 'b', 'c', 'd');$rndKey = array_rand($arr, 2);print_r($rndKey]);//输出一个随机key的数组
<php
$tmp = array ();
while ( count ( $tmp ) < 10 ) {
$tmp [] = mt_rand ( 1, 88 );
$tmp = array_unique ( $tmp );
}
print join ( ',', $tmp );
>
如果实际情况和你给出的例子这么简单,那就没有必要随机生成,使用 shuffle 打乱 array 其实就等于随机了。
$arr = array(1,2,3,4,5);
print_r($arr); // 输出 1,2,3,4,5
shuffle($arr); // 打乱顺序
print_r($arr); // 输出打乱顺序的数字
或者,使用rand随机生成。先复制一个相同的array,每生成一个随机数,就把它从array中删除,然后在剩余的数字中再生成随机。
$arr = array(1,2,3,4,5);
$arr_tmp = $arr;
for($i = 0; $i < count($arr_tmp) + $i; $i++) {
$rand = rand(0, count($arr_tmp) - 1);
echo "<p>第"($i + 1)"个随机数:"$arr_tmp[$rand]"</p>";
unset($arr_tmp[$rand]);
$arr_tmp = array_values($arr_tmp);
}
使用字符串截取函数explode,因为PHP是弱类型语言,所以可以直接使用
<$x=986;
$y=explode("",$x);
echo $y[0]"------";//98
echo $y[1]; //6
>
random是js中的取随机数,是Math中的一个方法,用的时候是Mathrandom(),返回的是0-1之间的一个数(包括0,不包括1),
rand是php里的一个取随机数的方法,返回的是你规定的最大数和最小数之间的值(包括最大值和最小值)。
具体步骤如下:
1、随机生成0-65535范围内十进制整数,并转换为二进制字符串;
2、用str_shuffle()函数将二进制字符串变成新的二进制字符串;
3、将新的二进制字符串转换为十进制的整数,然后将两个十进制数进行异或运算,得到新的十进制整数;
4,除以65535,转换成0-1之间的小数;
经过for循环统计,随机效果很不理想,表现为0-01区间比较密集,柱状图显示成递减分布。
以上就是关于php中怎样从一个数组中随机取一个元素出来呢全部的内容,包括:php中怎样从一个数组中随机取一个元素出来呢、请问PHP如果想在1-88里面取随机数,总共取10个不重复的值,然后放到一个数组里面该如何实现呢、PHP时间内随机生成数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)