ネストされた配列の重みを使用して配列をシャッフルする優れたアルゴリズムは何ですか?
例:
$array = array(
array("name"=>"John", "rank"=>3),
array("name"=>"Bob", "rank"=>1),
array("name"=>"Todd", "rank"=>8),
array("name"=>"Todd", "rank"=>14),
array("name"=>"Todd", "rank"=>4)
);
配列をランダムにシャッフルしたいが、rank
値を重みにしたい。したがって、数字のランクが低い人は、リストの一番上にいる可能性が高くなります。
配列を反復処理したり、選択した配列を引き出したりするなど、いくつかのことを試しましたmt_rand(mt_rand(0,$value),$value)
が、正しい軌道に乗っているとは思いません...