1

得到这个的最好/最简单的方法是什么:

我有的:

array('100', '100', '100', '80', '70', '70', '50', '45');

输出应该是什么样子:

100 (random order)
100 (random order)
100 (random order)
80
70 (random order)
70 (random order)
50
45
4

3 回答 3

4

您必须使用 usort 或 uasort (uasort 保留数组的键)。使用 PHP 5.3,您可以这样做:

shuffle($array); // randomize

uasort($array, function($a, $b){
    if($a === $b) {
        return rand(0, 1);
    }
    return $a < $b;
});

您可能必须先命名函数,例如 php 文档显示http://www.php.net/manual/fr/function.uasort.php

于 2012-07-18T09:52:57.157 回答
0

You can use usort (http://www.php.net/manual/en/function.usort.php) or uksort depending on your requirements. You can then choose to randomly return a positive or negative number if the values are equal.

于 2012-07-18T09:46:37.580 回答
0

Try something like this: http://codepad.org/SzSeUM4u

Based on the aasort from: Sort Multi-dimensional Array by Value

于 2012-07-18T09:48:32.993 回答