我明白这个问题可能已经被问到了,但我不明白先前的问题,足以知道他们是否做我想要的.
$fruits = array('20' => 'apple','40' => 'orange','40' => 'pear');
钥匙是获得价值的机会的百分比.我想要mt_rand()一个介于0和99之间的数字,并根据这些百分比从$fruits返回一个值.
这很可能我很困惑,因为我不知道如何解释我正在寻找什么.
提前感谢您的帮助.
我想要40%的机会获得橙色,40%的机会获得一个梨,并有80%的机会获得一个苹果.
编辑:为了进一步澄清,由于很多答案都错了(或者我只是不明白他们的代码),我需要一个结果,不管我选哪个号码,不只是20,40或40.
我认为这样做会做你想要的:
sample(点击提交按钮多次在样本上获得代码重新执行)
原文链接:https://www.f2er.com/php/131433.html$fruits = array('apple' => '20','orange' => '40','pear' => '40'); $newFruits = array(); foreach ($fruits as $fruit=>$value) { $newFruits = array_merge($newFruits,array_fill(0,$value,$fruit)); } $myFruit = $newFruits[array_rand($newFruits)];
这将创建一个数组($newFruits),它是一个具有100个元素的数字索引数组.其中20个是“苹果”,40个是“橙”,40个是“梨”.然后我们从该数组中选择一个随机索引. 100次中有20次将获得“苹果”,100次中40次将获得“橙色”,100次中40次将获得“梨”.