你好我需要从两个大数字之间得到N个数字,没有开始和结束数字。 (N)数字必须是相等的间隔......我将尝试用小数字来解释:
<?php
$rangeStart = 0;
$rangeEnd = 100;
$n = 9;
在这个例子中,我需要获得10,20,30,40,50,60,70,80,90
我试过'for loop'但是它很慢,因为我使用的范围很像1207083600~1275512399
非常感谢您的帮助。
=====
这就是我所说的慢http://jsfiddle.net/pbF7N/1/ 开始和结束都是时间戳,我需要提取10个日期......
答案 0 :(得分:8)
range()及其可选的第3个参数,用于指定步长...
range(10, 90, 10);
$range = range(10, 90, 10);
print_r($range);
Array
(
[0] => 10
[1] => 20
[2] => 30
[3] => 40
[4] => 50
[5] => 60
[6] => 70
[7] => 80
[8] => 90
)
答案 1 :(得分:2)
这样的事情可能是:
function nrange($num, $start, $end)
{
$out = array(); $i = 0;
$interval = floor(($end - $start) / ($num + 1));
while ($i++ < $num )
$out[] = $start + $i * $interval;
return $out;
}
答案 2 :(得分:1)
首先考虑您的示例案例。您的号码将[0..100)
范围分成10个相等的间隔,[0..10)
,[10, 20)
等等,直到[90..100)
。
请注意,间隔数为$n+1
。因此,您会看到每个间隔的长度为($rangeEnd - $rangeStart) / $n
。
使用此信息,您可以使用range一次跨越$interval
个号码,即
$interval = ($rangeEnd - $rangeStart) / $n;
$range = range($rangeStart, $rangeEnd, $interval);