/** * 分单算法 * @param $size * @param $order_money * @return array */ static function splitting_order($order_money, $size = 500) { if (0 != $order_money % $size) return array($order_money); // 拆分基数 $base_money = (500 < $order_money) ? array(500, 1000, 2000, 3000, 300, 100, 100) : array(100, 100, 300, 500); do { foreach ($base_money as $base) { $order_money -= $base; if ($order_money >= 0) { $split_order_money[] = $base; } else { $order_money += $base; } } } while (0 < $order_money); return $split_order_money; }