求助一个 PHP 分配问题

2015-06-23 11:15:10 +08:00
 likai
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这样分配?

不知道描述清楚了么?
求思路
2248 次点击
所在节点    PHP
3 条回复
hylent
2015-06-23 11:28:39 +08:00
```
x = 1;
y = p1 * 10; // 20 * 10 = 200

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

这个。。
issac
2015-06-23 11:37:01 +08:00
数据库存储字段:
存储时通过implode()转成->"10,20,40"

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

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

PS:如果要按照80,20的举例
循环前排序$percentArr
alex321
2015-06-23 11:41:53 +08:00
好像看起来你针对 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 之类的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/200494

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX