///问题已解决。看到我的答案BELLOW .///
我有一个数组随机生成TRUE值。一世 指定了我想要的TRUE值的数量,它就像一个魅力。 我正在四处寻找它的价值并产生某些行动 基于是否为值,该值为TRUE。问题是我需要这样做 再次,这次使用TRUE值形成一个数组i 需要一定数量的TRUE值。
即。我想要5个TRUE值。代码给了我3 TRUE 随机迭代的值:
[1]=>1; [1]=>; [2]=>1; [2]=>1; [3]=>; [3]=>1; [4]=>; [4]=>; [5]=>1; [5]=>1;
这一切都很好,花花公子。现在我需要3个中的2个为TRUE值 以前的值。考虑一下我从苹果中咬了5口。 3 我窒息的场合,在2例中我失去了2,3颗牙齿。
我想打印结果。
"Took a bite" "Took a bite and choked" "Took a bite" "Took a bite , choked , lost 1 tooth and got 9 left" (i have a total of 10 teeth) "Took a bite , choked , lost 2 teeth and got 7 left"
这是我需要在3/5和2/3随机后打印的内容 计算发生了。如果我咬了[2],[4]和[5] 迭代,我必须在那些精确的上随机丢失2次牙齿 迭代。
对不起这个例子。
///问题已解决。看到我的答案BELLOW .///
2)最后,我如何存储代码运行后发生的事情?就像“你吃了那个苹果之后,你呛了3次就失去了3颗牙齿,还剩下7颗”。 我这样做的方式不起作用并返回“我失去1颗牙齿并且剩下9颗,尽管我的计算值是7 ”,而不是堆积我的折磨值。
我知道这些问题很愚蠢,但我到处寻找信息,阅读手册和内容,不能把各个部分放在一起......
“随机3/5”案例中使用的方法:
$spots = array();
while (count($spots) < number) {
$rand = rand(1,36);
if (!isset($spots[$rand])) {
$spots[$rand] = TRUE;
}
}
$spots = $spots + array_fill(1, number, FALSE);
ksort($spots); /// credits to Nick J.
然后做了foreach($spots as $k => $v)
然后做了我的代码语句,从if ($v == 1), do code...
开始
并给了我一个随机的3/5列表,就像我首先发布的那个。
提前谢谢你, 维拉德
答案 0 :(得分:0)
好的,我编辑了我的答案,因为我找到了问题1的解决方案。
捕获的是扫描FALSE元素数组,取消设置它们,进一步处理,因为它会从原始数组的TRUE元素中随机选择元素。
希望这会派上用场。我将在这里发布代码:
$spots = array();
while (count($spots) < number) {
$rand = rand(1,constant);
if (!isset($spots[$rand])) {
$spots[$rand] = TRUE;
}
}
$spots = $spots + array_fill(1, constant, FALSE);
ksort($spots);
print_r($spots) ;
foreach($spots as $v)
{
if($v != 1)
{
unset($spots[array_search($v,$spots)]);
}
}
print_r($spots);
如果是示例数组:
$spots = array("1","2","3","4","5");
我想要挑选3个随机数(TRUE = 1,FALSE =无) 然后输出是:
[1]=>1;
[2]=>1;
[3]=>;
[4]=>;
[5]=>1;
如果我想从3个中获得2个随机数,那么最终输出是:
[1]=>1;
[2]=>1;
[5]=>1;