如何用php代码实现:随机生成不重复的10个范围在1到100的尾数是3或8的数

<?php
$i=rand(1,100);
$n=0;
if((substr($i,-1)=="3")||(substr($i,-1)=="8"))
{
$arr1[]=$i;
$n++;
while(!in_array($i,$arr1)){
echo $i."<br>";
}
if($n>=10){
break;
}
}
?>
这么写什么都输不出来,哪里错了?求大神指点。

...你写的是什么?
你的思路是 先随机得到一个1-100的i
然后截取判断,再在判断里循环?

先改思路,在不考虑效率的情况下,先循环
$arr=Array();
while(count($arr)<10){
$temp=rand(1,100);
//判断末尾数字
//判断是否数组中存在,不存在就$arr[]=$temp;存在就continue;
}

如果考虑效率,则修改算法,1-100就是两位数,随机生成十位数,末位再随机生成3和8比较好追问

这样可以嘛?

为什么输出的都是ArrayArrayArrayArray...?求大神赐教

大神,求教

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-04
$arr是你的数组 人家定义了一个空数组 所以输出的都是ArrayArrayArrayArray
相似回答