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.535 作为数字。

我想做的是从最小值获取前 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;

$i3 开始,因为我们需要从 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 &lt;= $maxSize; $i+=10) $sizedArray[] = $i; 让我编辑解决方案并添加您的方法

以上是关于PHP:将一个数字分隔为具有最小值和最大值的 10er 数组的主要内容,如果未能解决你的问题,请参考以下文章

[PTA]实验7-1-10 交换最小值和最大值

如何缩小具有已知最小值和最大值的数字范围

用于创建具有数据框中每个日期的最小值和最大值的表的函数

优雅地同时计算数字数组的最小值和最大值

从具有 O(n) 的数组中获取最大的时间下降、最小值和最大值

有没有更快的方法来分隔两个数组的最小值和最大值?