zoukankan      html  css  js  c++  java
  • php 根据数据权重,得分或者持有数量等进行均衡分配给定数量分配方法

    my_count  代表的是 权重或者 本来持有的数量

    看一下自己的想要达到的预期效果

    needEvenlyCount  是给定需要分配的数量

    先对myData  进行一个按 my_count的一个排序,array_multisort, array_column 等数组方法进行使用,如何使用就不在此多讲了

    结果

    如果还有比较好的思路,可以告知一下,

    附上代码片段

    $myData = [
                '1-1' => ['count'=>0, 'my_count'=>1],
                '1-2' => ['count'=>0, 'my_count'=>2],
                '1-3' => ['count'=>0, 'my_count'=>3],
            ];
            // 上面my_count 之和
            $neenSkuCount = 6;
    
            // 需要分配的数量
            $needEvenlyCount = 9; // 这个值 或者可以是<6的
    
            // 预期结果
            /*
            $myData = [
                '1-1' => ['count'=>1, 'my_count'=>1],
                '1-2' => ['count'=>3, 'my_count'=>2],
                '1-3' => ['count'=>5, 'my_count'=>3],
            ];
            */
    
            foreach ($myData as $k => &$v) {
                $v['count'] = (int) ($v['my_count'] / $neenSkuCount    * $needEvenlyCount);
                $neenSkuCount -= $v['my_count'];
                $needEvenlyCount -= $v['count'];
            }
            print_r($myData);exit;
  • 相关阅读:
    CUDA和cudnn的环境变量设置问题
    zsh-Ubuntu更实用终端
    应用安全
    应用安全
    应用安全
    操作系统
    应用安全
    应用安全
    操作系统
    密码学
  • 原文地址:https://www.cnblogs.com/fangdada/p/14952883.html
Copyright © 2011-2022 走看看