使用PHP生成相等的一组从负到正的数字
我需要帮助用PHP创建下面的一组数字 例如:使用PHP生成相等的一组从负到正的数字,php,numbers,days,Php,Numbers,Days,我需要帮助用PHP创建下面的一组数字 例如: $i = 7 结果: -3,-2,-1,0,1,2,3 -1,0,1 另一个例子: $i = 3 结果: -3,-2,-1,0,1,2,3 -1,0,1 谢谢您可以使用,最小/最大值为+/-floor($i/2)例如 $i = 7; print_r(range(-floor($i / 2), floor($i / 2))); 输出: Array ( [0] => -3 [1] => -2 [2] =
$i = 7
结果:
-3,-2,-1,0,1,2,3
-1,0,1
另一个例子:
$i = 3
结果:
-3,-2,-1,0,1,2,3
-1,0,1
谢谢您可以使用,最小/最大值为+/-floor($i/2)
例如
$i = 7;
print_r(range(-floor($i / 2), floor($i / 2)));
输出:
Array
(
[0] => -3
[1] => -2
[2] => -1
[3] => 0
[4] => 1
[5] => 2
[6] => 3
)
Array
(
[0] => -2
[1] => -1
[2] => 0
[3] => 1
)
Array
(
[0] => -1
[1] => 0
[2] => 1
[3] => 2
)
如果要使其适用于偶数,则必须确定该范围是要有更多的负值还是正值,并相应地调整最小值/最大值:
$i = 4;
print_r(range(-floor($i / 2), floor($i / 2) - 1));
$i = 4;
print_r(range(1 - floor($i / 2), floor($i / 2)));
输出:
Array
(
[0] => -3
[1] => -2
[2] => -1
[3] => 0
[4] => 1
[5] => 2
[6] => 3
)
Array
(
[0] => -2
[1] => -1
[2] => 0
[3] => 1
)
Array
(
[0] => -1
[1] => 0
[2] => 1
[3] => 2
)
一旦决定了如果输入为偶数,您希望哪个方向有更多的值,就可以使用%
确定输入是奇数还是偶数,从而使代码适用于奇数和奇数值。有关更多负值:
print_r(range(-floor($i / 2), floor($i / 2) - ($i + 1) % 2));
print_r(range(($i + 1) % 2 - floor($i / 2), floor($i / 2)));
有关更多正值:
print_r(range(-floor($i / 2), floor($i / 2) - ($i + 1) % 2));
print_r(range(($i + 1) % 2 - floor($i / 2), floor($i / 2)));
您可以使用,最小/最大值为+/-floor($i/2)
,例如
$i = 7;
print_r(range(-floor($i / 2), floor($i / 2)));
输出:
Array
(
[0] => -3
[1] => -2
[2] => -1
[3] => 0
[4] => 1
[5] => 2
[6] => 3
)
Array
(
[0] => -2
[1] => -1
[2] => 0
[3] => 1
)
Array
(
[0] => -1
[1] => 0
[2] => 1
[3] => 2
)
如果要使其适用于偶数,则必须确定该范围是要有更多的负值还是正值,并相应地调整最小值/最大值:
$i = 4;
print_r(range(-floor($i / 2), floor($i / 2) - 1));
$i = 4;
print_r(range(1 - floor($i / 2), floor($i / 2)));
输出:
Array
(
[0] => -3
[1] => -2
[2] => -1
[3] => 0
[4] => 1
[5] => 2
[6] => 3
)
Array
(
[0] => -2
[1] => -1
[2] => 0
[3] => 1
)
Array
(
[0] => -1
[1] => 0
[2] => 1
[3] => 2
)
一旦决定了如果输入为偶数,您希望哪个方向有更多的值,就可以使用%
确定输入是奇数还是偶数,从而使代码适用于奇数和奇数值。有关更多负值:
print_r(range(-floor($i / 2), floor($i / 2) - ($i + 1) % 2));
print_r(range(($i + 1) % 2 - floor($i / 2), floor($i / 2)));
有关更多正值:
print_r(range(-floor($i / 2), floor($i / 2) - ($i + 1) % 2));
print_r(range(($i + 1) % 2 - floor($i / 2), floor($i / 2)));
对于偶数来说,范围将太大,对吗?也许只需将
$i
添加到最小值?哦,等等,这是一样的。我猜应该是min+$I-1@Don“你完全正确。我为偶数提供了几个选项。对于偶数,范围会太大,对吗?也许只需将$i
添加到最小值?哦,等等,这是一样的。我猜应该是min+$I-1@Don“你完全正确。我给了偶数的几个选项。还有一个想法——如果你只是为了迭代而创建这个集合,你其实并不需要它。你只需要起点和尺寸。所以你可以这样做:for($x=-floor($i/2),$end=$x+$i;$x<$end;$x++){…
还有一个想法——如果你只是为了迭代而创建这个集合,你并不真的需要它。你只需要起点和大小。所以你可以这样做:for($x=-floor($i/2),$end=$x+$i;$x<$end;$x++){…