【问题标题】:PHP: Seperate a number to 10er array with a minimum and maximum valuePHP:将一个数字分隔为具有最小值和最大值的 10er 数组
【发布时间】: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 实现这一目标

【问题讨论】:

    标签: php arrays max php-7 min


    【解决方案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; }
    • 让我编辑解决方案并添加您的方法
    猜你喜欢
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2021-01-03
    • 2011-08-16
    • 2017-08-09
    • 2019-02-24
    相关资源
    最近更新 更多