usortを使う
・報酬マスタID(PK)
・グッズID
・確率
・個数
からなる報酬エンティティの配列がある。
これは、通常確率降順になっているのだけど、開発環境下ではこれを確率昇順でソートし直したい。
usort($array_reward, function($a, $b) { if ($a確率 == $b確率) { return 0; } return ($a確率 < $b確率) ? -1 : 1; });
ここにさらに個数が1以上であるというチェックをいれたい。
usort($rewards, function($a, $b) { if ($a個数 == 0) { return 1; } elseif ($a確率 == $b確率) { return 0; } return ($a確率 < $b確率) ? -1 : 1; });
としてあげれば問題なく動く。
【参考】