我需要通过添加两个交替的数字来创建一个数字数组,我不确定如何去做。
我需要添加4个然后是8个交替,直到我在阵列中有大约200个项目。不应包括起始编号。所以数组应该是:
[4,12,16,24,28,36,40,48 ......]
在PHP中实现这一目标的最佳方法是什么?
答案 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);