select()->toArray(); } $totalWeight = 0; foreach ($data as $pattern) { $totalWeight += $pattern['weight']; } // 随机金额 $amount = '0.00'; // 生成随机数 $randomNumber = rand(1, $totalWeight); foreach ($data as $pattern) { $randomNumber -= $pattern['weight']; if ($randomNumber <= 0) { $amount = $pattern['amount']; break; } } return [ 'data' => $data, 'amount' => $amount ]; } }