【问题标题】:Create an array of numbers by adding two alternating numbers通过添加两个交替数字来创建一个数字数组
【发布时间】:2017-10-14 02:47:17
【问题描述】:

我需要通过添加两个交替数字来创建一个数字数组,但我不知道该怎么做。

我需要交替添加 4 和 8,直到数组中有大约 200 个项目。不应包括起始编号。所以数组应该是:

[4, 12, 16, 24, 28, 36, 40, 48...]

在 PHP 中实现这一目标的最佳方法是什么?

【问题讨论】:

  • “最佳方式” 是主观的。我敢肯定有很多方法,其中一种是for() 循环,其中有一些添加?我会尝试一些东西,看看它是否有效。

标签: php arrays numbers


【解决方案1】:

有几种方法可以做到这一点...

这只是一种方式...

<?php        
$sequence_array = array();
$sequence_array[0] = 4;       // Seed the initial entry
for ($i = 1; $i < 200; $i++) {
    $step = ($i % 2) ? 8 : 4; // Decide whether to add a 4 or an 8
    $sequence_array[$i] = $sequence_array[$i - 1] + $step;
}
var_dump($sequence_array);    // Lets peek at the result

所以基本上用起始编号 4 播种第一个条目。

对索引执行模 2,这就像奇数/偶数一样,这给了我们“交替”效果。

基于“奇/偶”的位置,$step 被计算为 4 或 8。

您可以使这更像一个函数,并为您的交替数字设置/使用变量。但如果你需要,我会把它留给你:)

好吧,我不能这样……

所以你可以定义一个类似...的函数

function build_alternating_array($first_value, $second_value, $total_entry_count) {
    $array = array();
    $array[0] = $first_value;   // Seed the initial value
    for ($i = 1; $i < $total_entry_count; $i++) {
        $step = ($i % 2) ? $second_value : $first_value;
        $array[$i] = $array[$i - 1] + $step;
    }

    return $array;
}

然后这样称呼它......

$sequence_array = build_alternating_array(4, 8, 200);
var_dump($sequence_array); // Lets peek at the result

【讨论】:

    【解决方案2】:

    只是一个简化版:

    $b = [];
    $d = 0;
    for($a =0; $a<=200; $a++)
    {
        $d += $a % 2 ? 8 : 4;
        array_push($b , $d);
    }
    
    print_r($b);
    

    【讨论】:

    • 这比我想出的解决方案更好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多