php中怎样从一个数组中随机取一个元素出来呢

php中怎样从一个数组中随机取一个元素出来呢,第1张

它的用法也很简单: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时间内随机生成数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9726947.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存