通过添加两个交替数字来创建数字数组

时间:2017-10-14 02:47:18

标签: php arrays numbers

我需要通过添加两个交替的数字来创建一个数字数组,我不确定如何去做。

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

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

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

2 个答案:

答案 0 :(得分:0)

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

这只是一种方式......

<?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,这就像奇数/偶数类的东西,它给了我们&#34;交替&#34;效果。

$ step计算为4或8,基于位置为&#34; odd / even&#34;。

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

好的,我不能让它成为......

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

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

答案 1 :(得分:0)

只是一个简化版本:

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

print_r($b);