如何将X个元素组合在一起?

时间:2015-09-14 22:31:26

标签: php arrays loops sum

我需要从以下数组中获取有效的时间戳:

$arrkeys = array(
    "t" => [
        1442238840,60,120,180,240,300,360,420,480,540,600,660,720,780,840,900,960,
        1442239860,60,120,180,240,300,360,420,480,540,600,660,720,780,840,900,960,
        1442240880,60,120,180,240,300,360,420,480,540,600,660,720,780,840,900,960
    ]
);

我需要将第一个有效时间戳1442238840与以下17个数字相加,以获得正确的时间戳,然后是第二个时间戳1442239860等...

示例:

1442238840 + 60;
1442238840 + 120;
1442238840 + 180;
etc... 

我无法弄清楚我该怎么做, 我尝试过的一些事情:

尝试排名第1

//Pseudo-code
foreach($arrkeys["t"] as $t){

    if(strlen($t) < 10){
        //Search for the first valid timestamp and sum?
    }

}

尝试2号

//Not working.
$array_size = 17; 

/* I know that every 17 (counting from 0) have a  valid timestamp. 
    so that 0 = 1st valid timestamp, 20 = 2nd valid timestamp. */

for ($i = 0; $i < $array_size; $i++) { 
    do {
        echo $i;
    } while ($i > 0);

我不知道我是否正确地解决了这个问题,我不知道如何有效地做到这一点,或者至少不知道如何做到这一点。

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

我喜欢你尝试过不同的东西。那很好!

你试图自己解决这个问题,array_chunk()会对你有很大的帮助,因为你可以将你的数组分成17个元素组,然后用array_sum()将每组17个元素加在一起,例如

$result = array_chunk($arrkeys["t"], 17);
$result = array_map("array_sum", $result);