Php 获取两个值之间的每x个数

Php 获取两个值之间的每x个数,php,range,Php,Range,在php中,是否有可能在2值之间获得每个可被25000整除的数字。例如,我得到的最低价格是191000,最高价格是432000。我知道,若我有一个预定义的值数组,我可以使用range()来实现这一点,但我确信有更好的方法来实现。基本上,返回的值是: 191000 200000 225000 ... 425000 432000 您可以使用for循环(或@mschuett在范围()上使用foreach),然后使用模运算符(%)查看该数字是否可被25000整除: $numbers = array()

在php中,是否有可能在2值之间获得每个可被25000整除的数字。例如,我得到的最低价格是191000,最高价格是432000。我知道,若我有一个预定义的值数组,我可以使用
range()
来实现这一点,但我确信有更好的方法来实现。基本上,返回的值是:

191000
200000
225000
...
425000
432000

您可以使用
for
循环(或@mschuett在
范围()上使用
foreach
),然后使用模运算符(
%
)查看该数字是否可被25000整除:

$numbers = array();
for($i = $min; $i <= $max; $i++) {
    if($i % $divisible === 0) $numbers[] = $i;
}
print_r($numbers);
$base = ceil($min / $divisible) * $divisible;
for($i = $base; $i <= $max; $i += $divisible) {
    $numbers[] = $i;
}
print_r($numbers);

显然,在这两个示例中,都需要定义
$min
$max
$divisible
。两个示例都输出:

Array
(
    [0] => 200000
    [1] => 225000
    [2] => 250000
    ...
    [9] => 425000
)

您可以使用
for
循环(或@mschuett在
范围()上使用
foreach
),然后使用模运算符(
%
)查看该数字是否可被25000整除:

$numbers = array();
for($i = $min; $i <= $max; $i++) {
    if($i % $divisible === 0) $numbers[] = $i;
}
print_r($numbers);
$base = ceil($min / $divisible) * $divisible;
for($i = $base; $i <= $max; $i += $divisible) {
    $numbers[] = $i;
}
print_r($numbers);

显然,在这两个示例中,都需要定义
$min
$max
$divisible
。两个示例都输出:

Array
(
    [0] => 200000
    [1] => 225000
    [2] => 250000
    ...
    [9] => 425000
)

您可以将for循环与一些舍入相结合,而不是循环100000次

$arr = [];
for($i = 191000; $i <= 432000; $i++) {
    $i = ceil($i / 25000) * 25000;
    if ($i > 432000) {
        break;
    }
    $arr[] = $i;
}
$arr=[];
对于($i=191000;$i 432000){
打破
}
$arr[]=$i;
}

您可以将for循环与舍入相结合,而不是循环100000次

$arr = [];
for($i = 191000; $i <= 432000; $i++) {
    $i = ceil($i / 25000) * 25000;
    if ($i > 432000) {
        break;
    }
    $arr[] = $i;
}
$arr=[];
对于($i=191000;$i 432000){
打破
}
$arr[]=$i;
}

啊,我现在觉得自己好笨。哈哈,谢谢你的回答!“我会尽快接受的。”杰夫托马斯我补充了第二个例子。它不像最初的答案那么明显,但它会稍微更有效,因为它只需要做一个数学运算,并通过一组小得多的数字进行循环。如果你需要解释,请告诉我。@Sam+1对于第二个例子,比第一个更有效。我不知道你想要最小/最大值。很高兴我能帮上忙:)啊,我现在感觉好傻。哈哈,谢谢你的回答!“我会尽快接受的。”杰夫托马斯我补充了第二个例子。它不像最初的答案那么明显,但它会稍微更有效,因为它只需要做一个数学运算,并通过一组小得多的数字进行循环。如果您需要解释,请告诉我。@Sam+1对于第二个示例,比第一个示例更有效。我不知道您想要最小/最大值。很高兴我能提供帮助:)很好地使用
range()
,即使在OP中也没有想到它。很好地使用
range()
,即使在OP中也没有想到它。有趣的逻辑,这是我两个例子的结合+1有趣的逻辑,是我两个例子的结合+1.