分单算法,将一个订单分为几个

/**
     * 分单算法
     * @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;
    }
原文地址:https://www.cnblogs.com/adtuu/p/5549468.html