它说错误未定义的偏移我不知道是什么原因导致它
我试图改变$ numberarray而不重复数字
继承人的代码
$numberarray = array(1,2,3,4,5,6,7,8,9,10);
for($counter=0;$counter<=9;$counter++)
{
$b = $counter - 1;
$a = $numberarray[$counter];
$numberarray[$counter] = rand(1,10);
do
{
$numberarray[$counter] = rand(1,10);
while($b != 0)
{
if($numberarray[$counter] == $numberarray[$b])
{
$numberarray[$counter] = rand(1,10);
$b = $counter - 1;
//echo $b;
}
else
{
$b--;
}
}
}while($a == $numberarray[$counter]);
echo $numberarray[$counter].", ";
}
示例输出$ numberarray = {3,4,5,1,2,7,9,10,8,5}
答案 0 :(得分:1)
这会更好:
(顺便说一句,你不需要额外的条件,因为while
就像一个条件本身一样)
$numberarray = array(1,2,3,4,5,6,7,8,9,10);
for($counter=0;$counter<=9;$counter++)
{
$b = $counter - 1;
$a = $numberarray[$counter];
$numberarray[$counter] = rand(1,10);
do
{
$numberarray[$counter] = rand(1,10);
while($b >0)
{
if($numberarray[$counter] == $numberarray[$b])
{
$numberarray[$counter] = rand(1,10);
$b = $counter - 1;
//echo $b;
}
else
{
$b--;
}
}
}while($a == $numberarray[$counter]);
echo $numberarray[$counter].", ";
}
即使没有更多错误,您的代码有时会重复数字,所以我会使用shuffle这样做:
$numberarray2 = array(1,2,3,4,5,6,7,8,9,10);
shuffle($numberarray2);
print_r($numberarray2);
答案 1 :(得分:0)
问题是,在第一个$b
等于-1时,这就是你得到错误的原因所以我认为你应该删除if条件并将while语句编辑为while($b!=-1)
。