更好"随机化"使用Simplexml和PHP

时间:2017-07-23 08:02:36

标签: php

我正在研究一个'思考'我正在处理的游戏的功能 - 它从XML文件中提取随机字符串,将它们组合起来并使它们变得有趣#39;但是,我遇到了一个小问题,因为每次都会选择相同的项目。

我正在使用的两个功能是

       function randRoller($number)
   {
     mt_srand((microtime()*time())/3.145);
     $x = [];
     for($i = 0; $i < 100; $i++)
     {
        #$x = mt_rand(0,$number);
     }
     return mt_rand(0,$number);
   }
/* RETRIEVE ALL RELEVANT DATA FROM THE XML FILE */
   function retrieveFromXML($node)
   {
   $node = strtolower($node);
    $output = [];
    $n = substr($node,0,4);
    #echo $node;
    foreach($this->xml->$node->$n as $data)
    {
     $output[] = $data->attributes();
    }
    $count = count($output)-1;

    $number = $this->randRoller($count);
     return $output[$number];
    }

当然,&#34; randRoller&#34;函数现在已经解散了,因为我拥有的原始版本(从计数中滚动了十个数字,然后选择得到最多骰子的数字)并没有按计划工作。

我已经尝试了一切我能想到的,以获得更好的效果&amp;&amp;谷歌搜索我的大脑来解决它。但仍然得到相同的重复结果。

1 个答案:

答案 0 :(得分:0)

除非您知道自己在做什么,否则不要使用mt_srand(),因为它会自动调用。请参阅http://php.net/manual/en/function.mt-srand.php上的说明:

  

注意:无需使用srand()或mt_srand()对随机数生成器进行播种,因为这是自动完成的。

删除(全部)mt_srand()个电话。