重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

php数据平均分配 php算平均分

php 23条订单平均分配给3给人

鉴于你提的问题,我拆分成为了两部分,假设23和3都是变量,要完成这个事情,首先要知道给每个人应该分配多少任务,然后就是分配任务的事情了

目前成都创新互联公司已为超过千家的企业提供了网站建设、域名、虚拟空间、网站托管维护、企业网站设计、汕城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

# 任务数

$m = 23;

# 模拟任务id

$order = range(1,$m);

# 用户

$user = ['小红', '小明', '小花'];

$n = count($user);

# 单人最少任务数

$min = floor($m / $n);

# 单人最多任务数

$max = $min + 1;

# 最多任务数的人数

$maxNum = $m - $min * $n;

# 每人多少个任务

$userNum = array_merge( array_fill(0, $maxNum, $max), array_fill(0, $n - $maxNum, $min) );

# 打乱

shuffle($userNum);

# 每个用户多少任务

$user = array_combine($user, $userNum);

# 分配任务

$ret = [];

foreach( $user as $_user = $_count){

# 随机分配

$ret[$_user][] = array_rand($order, $_count);

}

代码写的比较简单,而且很明显任务数太大会有问题。

如果是比较大的任务分配系统,建议采用队列,按照楼上的说轮流或随机或按权重进行分配

有什么问题的话可以互相交流,还望采纳

有20个有序数字php怎么平均分配给4用户并写入mysql数据库?

function getDivideNumber($number, $total, $index = 2) {

// 取平均数

$divide_number = floor($number / $total * pow(10, $index)) / pow(10, $index);

$divide_number = number_format($divide_number, $index, '.', '');

// 获取最后一个数字

$last_number = $number - $divide_number * ($total - 1);

$last_number = number_format($last_number, $index, '.', '');

// 拼装平分后的数据返回

$number_str = str_repeat($divide_number . ',', $total - 1) . $last_number;

return explode(',', $number_str);

}

$array = getDivideNumber(120, 3, $index = 0);

得到平均分配的数字数组,用遍历后入库

PHP 智能分配一批数据

N个业务员有id吧,用随机数函数生成id,随机的范围靠业务员的id来确定,注意不能重复,每次随机抽取一个业务员id,分配给他一批数据,数据的id用类似方法获取


分享标题:php数据平均分配 php算平均分
文章转载:http://cqcxhl.com/article/hpshce.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP