likai
V2EX  ›  PHP

求助一个 PHP 分配问题

  •  
  •   likai · Jun 23, 2015 · 2738 views
    This topic created in 3989 days ago, the information mentioned may be changed or developed.
    1-1000数值范围

    然后按照百分比来分配。
    百分比个数不固定。人工设置
    可能就是1个:100%
    或者:20% 80%
    也有可能是10% 20% 30% 40%

    比如 如果是80% 20%两个
    然后分配 1-200为20%
    201-1000为80%


    如果是五个20%
    则1-200 201--400 401-600 601-800 801-1000这样分配?

    不知道描述清楚了么?
    求思路
    3 replies    2015-06-23 11:41:53 +08:00
    hylent
        1
    hylent  
       Jun 23, 2015
    ```
    x = 1;
    y = p1 * 10; // 20 * 10 = 200

    x = y + 1; // 201
    y = y + p2 * 10; // 200 + 20 * 10 = 400
    ```

    这个。。
    issac
        2
    issac  
       Jun 23, 2015
    数据库存储字段:
    存储时通过implode()转成->"10,20,40"

    取的时候:
    $numArr = array(1000)个数值;
    $percentArr = explode(数据库去读的资料);

    循环$percentArr;
    每次循环用array_slice拆分$numArr;
    需要计算初始key.
    拆分数量通过$percentArr计算

    PS:如果要按照80,20的举例
    循环前排序$percentArr
    alex321
        3
    alex321  
       Jun 23, 2015
    好像看起来你针对 1-1000 中的每 1% 都是等分的。
    我需要处理的就是你是按照 20%/80% 来进行分配,还是按照 10%/20%/30%/40% 来进行分类,或者是按照 20%/20%/20%/20%/20% 来进行分配,或者按照类似的比例来进行分类。
    我们设置 100 个单元格,每单元格为 1%。第一次按下鼠标到选中就是第一个分配区间,第二次就是第二个分配区间。
    看你的描述,最小的分配区间都是 10%,那就只需要 10 个单元格了。最终判断鼠标选中的区间比例。

    当然,如果不想做这个稍微有点复杂的前端功能。还可以用简单到没朋友的方式:一个输入框,输入不同的比例数值,中间中 | 或者 , 之类的区分就行。比如,前面的例子分别输入 20|80,10|20|30|40,20|20|20|20|20。甚至考虑到最小的分配区间都是 10%,可以直接把后面的 0 去掉,变成 2|8 之类的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3389 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 11:31 · PVG 19:31 · LAX 04:31 · JFK 07:31
    ♥ Do have faith in what you're doing.