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

次のようなものを試してください: http://codepad.org/SzSeUM4u

aasort に基づく: 値による多次元配列の並べ替え

于 2012-07-18T09:48:32.993 に答える
0

要件に応じて、usort (http://www.php.net/manual/en/function.usort.php) または uksort を使用できます。値が等しい場合は、正または負の数値をランダムに返すように選択できます。

于 2012-07-18T09:46:37.580 に答える