【发布时间】:2014-09-25 03:59:37
【问题描述】:
似乎一个庞大而复杂的代码库取决于 arsort 生成的顺序。在我深入了解 50 个类中实际发生的情况之前 - 是否有一种简单的方法来随机播放具有相同值的项目?
换句话说,如果输入是
['foo' => 3, 'bar' => 3, 'baz' => 3, 'this' => 2, 'that' => 2]
我想买
['baz' => 3, 'bar' => 3, 'foo' => 3, 'this' => 2, 'that' => 2]
可能会跑一次,然后
['baz' => 3, 'bar' => 3, 'foo' => 3, 'that' => 2, 'this' => 2]
在另一个随机运行中。
【问题讨论】:
-
那些是重复的键
-
我第二个@Ghost - 对于洗牌数组,你应该使用Fisher Yates算法:stackoverflow.com/questions/3169805/…
-
@Ghost 对不起,我试图举一个简单的例子。固定。
-
@Centril 但我绝对不想要相同的订单,我希望所有可能的订单都发生在后续运行中。
-
据我从您的示例中了解到,您希望将集合 {baz,bar,foo} 和 {that,this} 相互独立地洗牌......洗牌不能保证所有可能的订单将包括在内,但最终可能会发生。