我正在尝试创建一个模拟彩票的程序。我用6个随机数创建我的第一个数组,然后尝试用随机数继续填充我的第二个数组,直到它们相同。当数字介于1到9之间时,它可以正常工作,但是当我将它延长到1到49之间时,就像真正的彩票一样,我只是抽出时间。试图比较两个数组PHP
<?php
$number1 = $_POST['number1'];
$number2 = $_POST['number2'];
$number3 = $_POST['number3'];
$number4 = $_POST['number4'];
$number5 = $_POST['number5'];
$number6 = $_POST['number6'];
$userArray = array($number1, $number2, $number3, $number4, $number5, $number6);
// mix and max numbers that can be used with th lottery
$min = 1;
$max = 49;
// random number between 0 and 1 simulating lottery
$lotNumber1 = rand ($min, $max);
$lotNumber2 = rand ($min, $max);
$lotNumber3 = rand ($min, $max);
$lotNumber4 = rand ($min, $max);
$lotNumber5 = rand ($min, $max);
$lotNumber6 = rand ($min, $max);
$lotArray = array($lotNumber1, $lotNumber2, $lotNumber3, $lotNumber4, $lotNumber5, $lotNumber6);
asort($userArray);
asort($lotArray);
$userString = implode($userArray, "_");
$lotString = implode($lotArray, "_");
$i = 0;
set_time_limit(10000);
while($lotString != $userString) {
$i ++;
$lotNumber1 = rand ($min, $max);
$lotNumber2 = rand ($min, $max);
$lotNumber3 = rand ($min, $max);
$lotNumber4 = rand ($min, $max);
$lotNumber5 = rand ($min, $max);
$lotNumber6 = rand ($min, $max);
$lotArray = array($lotNumber1, $lotNumber2, $lotNumber3, $lotNumber4, $lotNumber5, $lotNumber6);
asort($lotArray);
$lotString = implode($lotArray, "_");
}
echo '<pre>';
print_r ($lotString);
echo '</pre>';
echo '<pre>';
print_r ($userString);
echo '</pre>';
echo "YOU WON it took ".$i." times";
?>
首先是你正在用错误的方式使用implode'string implode(string $ glue,array $ pieces)',所以在你的情况下它会是'$ userString = implode(“_”,$ userArray);','_'是胶水;) – 2014-11-24 13:37:27
也许你只是没有赢 - 这就是为什么它被称为彩票;) – Rhumborl 2014-11-24 13:38:55
=))好一个......他只是运气不佳:( – 2014-11-24 13:39:18