如何在有限的可能性下构建PHP数组
我试图构建一段代码,将行打印5次,并且只有两种可能的结果。我还希望其中一个结果只能出现两次如何在有限的可能性下构建PHP数组,php,html,function,Php,Html,Function,我试图构建一段代码,将行打印5次,并且只有两种可能的结果。我还希望其中一个结果只能出现两次 <?php function abe( $number ) { $shoot = Array("alpha", "bravo"); ?> <h1> Hello <?php echo $number; ?> You are on team <?php echo $shoot[array_rand($shoot)]; ?>
<?php
function abe( $number ) {
$shoot = Array("alpha", "bravo");
?>
<h1> Hello <?php echo $number; ?> You are on team <?php echo $shoot[array_rand($shoot)]; ?> </h1>
<?php
}
?>
<?php abe( '1'); ?>
<?php abe( '2'); ?>
<?php abe( '3'); ?>
<?php abe( '4'); ?>
<?php abe( '5'); ?>
有可能Bravo甚至不会打印一次。我如何确定它会打印两次?未经测试,但这应该是动态的,可以处理任意数量的玩家:
<?php
function abe( $number ) {
// Input: Array Input of numbers or Names
// Output: Team selection for each member of array Alpha||Bravo, where there can only be 2 Bravo
$b = 0;
$r = "";
foreach($number as $n){
$p = rand(0,1);
if($p == 1){
$b++;
}
if($b > 2){ $p = 0; }
$r .= "<h1 pick='$p'>Hello $n You are on team " . (!$p?"Alpha":"Bravo") . " </h1>\r\n";
}
return $r;
}
echo abe(array(1,2,3,4,5));
?>
然后您需要跟踪每个选项的使用次数,如果选择超出限制,则重新生成随机数。当然,您有5个输出,只有两个选项,因此第5次尝试将没有任何选择。我认为您将以数字>=5作为alpha结束,因为它没有重复约束。我还没有写代码,但是我很确定你最终会使用这样的数组:$shot=array(“alpha”=>array(“max”=>0,“current”=>0),“bravo”=>array(“max”=>0,“current”=>0));阿尔法可以打印3次,布拉沃可以打印2次。如果我有这个设置有10个输出-阿尔法将打印8次和布拉沃仍然2。如果这更清楚的话,我相信这是向前迈出的一步。尽管“Alpha”有可能会全部打印5次。我想知道如何强制它,使布拉沃必须打印两次。所以你想有2名成员随机被挑选为布拉沃每次?剩下的永远是阿尔法?是的,我一直在努力为自己弥补一个挑战,这是一个我无法理解的挑战。强制它有两个成员是“bravo”,其余的是alpha。我的编辑有帮助吗?如果它回答了问题,请标记它。这是一种工作,它有时会发出两次“好极了”,有时会发出一次。
<?php
function abe( $number ) {
// Input: Array Input of numbers or Names
// Output: Team selection for each member of array Alpha||Bravo, where there can only be 2 Bravo
$b = 0;
$r = "";
foreach($number as $n){
$p = rand(0,1);
if($p == 1){
$b++;
}
if($b > 2){ $p = 0; }
$r .= "<h1 pick='$p'>Hello $n You are on team " . (!$p?"Alpha":"Bravo") . " </h1>\r\n";
}
return $r;
}
echo abe(array(1,2,3,4,5));
?>
<?php
function abe( $number ) {
// Input: Array Input of numbers or Names
// Output: Team selection for each member of array Alpha||Bravo, where there can only be 2 Bravo
$b = 0;
$c = count($number);
$r1 = rand(1,$c);
$r2 = rand(1,$c);
if($r1 == $r2){
$r2++;
if($r2 > $c){
$r2 -= 2;
}
}
$r = "";
foreach($number as $k => $n){
if($k == $r1 || $k == $r2){
$r .= "<h1 pick='$k'>Hello $n You are on team Bravo</h1>\r\n";
} else {
$r .= "<h1 pick='$k'>Hello $n You are on team Alpha</h1>\r\n";
}
}
return $r;
}
echo abe(array(1,2,3,4,5));
?>