これを取得するための最良/最も簡単な方法は何ですか:
私が持っているもの:
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
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を示しているように、前に関数に名前を付ける必要がある場合があります
次のようなものを試してください: http://codepad.org/SzSeUM4u
aasort に基づく: 値による多次元配列の並べ替え
要件に応じて、usort (http://www.php.net/manual/en/function.usort.php) または uksort を使用できます。値が等しい場合は、正または負の数値をランダムに返すように選択できます。