
php 节点已经沉了,原帖 t/932006
已知有两位数(变量),最小值$min ,最大值$max 。
我的原始数据例如:$min=13 ,$max=47 。
我期望得到的数据(按照 10 的倍数分块,min 值靠近 10 的倍数起跳,中途按 10 的倍数为一个阶梯,max 值不进 10 ):
[ { "begin":13, "end":20 }, { "begin":21, "end":30 }, { "begin":31, "end":40 }, { "begin":41, "end":47 } ] --min 与 max 为任意值,min 可能<=max
1 MiaoLei911 OP js 语法解答也可以,我能看懂,其他语言就看不懂了。。 |
2 colinlikepotatos 2023 年 4 月 12 日 <?php $min = 23; $max = 100; $step = 10; $arr = []; $end = $min + ($step - ($min % $step)); $start = $min; do{ if($end > $max){ if($start >= $end){ $arr[] = [ "begin"=>$start, "end"=>$max, ]; } break; }else{ $arr[] = [ "begin"=>$start, "end"=>$end, ]; $start = $end + 1; $end = $start + ($step - ($start % $step)); } }while(true); echo "<pre>"; var_dump($arr); echo "</pre>"; 这个意思? |
3 SethShi 2023 年 4 月 12 日 这有什么逻辑吗 $min = 13; $max = 47; $nextVal = $min - ($min % 10) + 10; $result = []; while (($nextVal - 10) < $max) { $result[] = [ 'begin' => $min, 'end' => $nextVal > $max ? $max : $nextVal, ]; $min = $nextVal + 1; $nextVal += 10; } var_dump($result); |
4 MiaoLei911 OP @seth19960929 太厉害了。我就是没思路 ,感激 |
5 MiaoLei911 OP @colinlikepotatos 大哥你这个起始值和中间值对了,只是 max 不对,max 不是 10 的倍数话就还是差一条数据 |
6 0o0o0o0 2023 年 4 月 12 日 ```Javascript length = (max-max%10-min-10+min%10)/10+1 baseArr = [...Array(length).keys()] begins = baseArr.map(p=>p*10+min+10-min%10+1)) ends = baseArr.map(p=>p*10+min+10-min%10).concat([max]) res = begins.map((value,index,arr)=>{ return { begin:value,end:ends[index] } }) ``` |