PHP拆分金额

PHP拆分金额

<?php


function get_money($money,$number,$cash){
    $list = array();
    for ($i=0; $i < $number - 1; $i++) { 
        $list[] = sprintf("%.2f",$money / 2  * (rand(97,99) / 100) );
    }
    $sum = array_sum($list);
    $list[] = sprintf("%.2f",$money - $sum);

    // 调整金额不能超过剩余金额
    $list = get_price($list,$money,$cash);
    return $list;
}

function get_price($list,$money,$cash){
    foreach ($list as $key => $value) {
        if($value > $cash){
            $num = (rand(10,999) / 100);
            $value = $cash - $num;

            $min = array_search(min($list),$list);
            $list[$min] = $list[$min] + $num;

            $list[$key] = $value;
        }
    }

    $min = array_search(min($list),$list);
    $sum = array_sum($list);
    $list[$min] = $list[$min] + ($money - $sum);

    foreach ($list as $key => $value) {
        if($value > $cash){
            $list = get_price($list,$money,$cash);break;
        }
    }
    return $list;
}
原文地址:https://www.cnblogs.com/ccw869476711/p/12853510.html