[英]Can't get List() function to working with array
这是我的简单代码,我不明白为什么以及如何...
$len = 5; // total number of numbers
$min = 1; // minimum
$max = 90; // maximum
$range = array(); // initialize array
foreach (range(0, $len - 1) as $i) {
while(in_array($num = mt_rand($min, $max), $range));
//$range[] = $num;
list($br1, $br2, $br3, $br4, $br5) = $range;
}
print_r($range);
//echo $br1." ".$br2." ".$br3." ".$br4." ".$br5;
希望对您有所帮助...! 谢谢!
应写为:
<?php
$len = 5; // total number of numbers
$min = 1; // minimum
$max = 90; // maximum
$range = array(); // initialize array
foreach (range(0, $len - 1) as $i) { // you need to repeat the loop $len times
// get a new random number in the given range and assign it to $num,
// do it until the generated number is unique (not present in $range)
// the loop body is empty, as all the action happens inside its condition
while(in_array($num = mt_rand($min, $max), $range));
// append the random number to array
$range[] = $num;
}
list($br1, $br2, $br3, $br4, $br5) = $range;
echo $br1." ".$br2." ".$br3." ".$br4." ".$br5;
代码的现有版本永远不会更新$range
变量(出于某种原因注释掉了相应的行),这就是为什么它不起作用的原因。
您需要在代码中进行简单的修改。您的分配列表在侧循环中。 而且您的可变范围数组需要注释
$len = 5; // total number of numbers
$min = 1; // minimum
$max = 90; // maximum
$range = array(); // initialize array
foreach (range(0, $len - 1) as $i) {
while(in_array($num = mt_rand($min, $max), $range));
$range[] = $num;
}
list($br1, $br2, $br3, $br4, $br5) = $range;
print_r($br1);
print_r($br2);
//echo $br1." ".$br2." ".$br3." ".$br4." ".$br5;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.