我试图构建一段代码,打印5次行,只有两种可能的结果。我还希望其中一个结果只可能出现两次。
<?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"最多打印2次。我怎样才能让b只允许两个实例呢?
So this may print....
Hello 1 You are on team alpha
Hello 2 You are on team alpha
Hello 3 You are on team alpha
Hello 4 You are on team alpha
Hello 5 You are on team alpha
有可能Bravo甚至不会打印一次。我怎么能确定它会打印2次?
未经测试,但这应该是动态的,以处理任何数量的玩家:
<?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));
?>
编辑
根据你的评论,这里是另一个版本,将迫使布拉沃2次:
<?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));
?>