来自另一个数组的PHP随机数组值

时间:2014-08-22 06:02:54

标签: php arrays random

///问题已解决。看到我的答案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列表,就像我首先发布的那个。

提前谢谢你, 维拉德

1 个答案:

答案 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;