PHP:将一个数字分隔为具有最小值和最大值的 10er 数组
Posted
技术标签:
【中文标题】PHP:将一个数字分隔为具有最小值和最大值的 10er 数组【英文标题】:PHP: Seperate a number to 10er array with a minimum and maximum value 【发布时间】:2020-02-07 19:34:28 【问题描述】:我不知道如何以正确的方式形成这个,所以这是概念。
例如,我有 93.5 和 35 作为数字。
我想做的是从最小值获取前 10er 数字,在本例中为 30,并从最大值获取下一个 10er 数字,在本例中为 100。
下一步是从这两个数字之间的每个 10er 数字中获取一个数组。它看起来像这样:
array(8 items)
0 => 30
1 => 40
2 => 50
3 => 60
4 => 70
5 => 80
6 => 90
7 => 100
所以问题是,我如何使用 php 实现这一目标
【问题讨论】:
【参考方案1】:经过一些编码,我找到了解决方案。
第一步:获取最小和最大数字,并将它们设置为上一个和下一个10er数字:
$minSize = floor(35 / 10) * 10; /* Gives back 30 */
$maxSize = ceil( 93.5 / 10) * 10; /* Gives back 100*/
现在从$maxSize
中获取号码,除以10。
$devidedNumber = $maxSize / 10; /* Gives back 10 */
之后,将使用$devidedNumber
创建一个for
迭代,以确定该迭代应该运行多少次。
$sizedArray = array();
for ($i = $minSize/10; $i <= $devidedNumber; $i++)
$sizedArray[] = $i * 10;
$i
从 3 开始,因为我们需要从 30 开始的值到目标值。
结果:
array(8 items)
0 => 30
1 => 40
2 => 50
3 => 60
4 => 70
5 => 80
6 => 90
7 => 100
编辑:
@Nigel Ren 回答后,另一种方法如下。将数字四舍五入后,for
迭代可能如下所示:
for ($i = $minSize; $i <= $maxSize; $i+=10)
$sizedArray[] = $l;
在这种情况下,通过删除该行来简化代码
$devidedNumber = $maxSize / 10; /* Gives back 10 */
并直接从四舍五入中获取值之间的值。
谢谢你的好建议
【讨论】:
你可以通过使用增量为 10 来简化你的 for 循环 -for ($i = $minSize; $i <= $maxSize; $i+=10) $sizedArray[] = $i;
让我编辑解决方案并添加您的方法以上是关于PHP:将一个数字分隔为具有最小值和最大值的 10er 数组的主要内容,如果未能解决你的问题,请参考以下文章