使用特殊循环为迭代添加元素到数组

时间:2015-10-02 15:11:21

标签: php arrays loops for-loop iteration

假设我有Arrayx元素。我想循环遍历“{”中的Array并添加run-Time变量。这意味着每组10 Arrays都有一个唯一的run-time。我使用下面的代码:

$time = '00:00:00';
 $k = 0;
    for ($i = 0; $i < count($agnt_arr); $i+=10) {
        $temp = strtotime("+$k minutes", strtotime($time));
        $runTime = date('H:i', $temp);
        array_push($agnt_arr[$i], $runTime);
        $k+=4;
    }

其中$agnt_arr是具有以下结构的Array

Array
(
    [0] => Array
        (
            [name] => User.One 
            [email] => User.One@mail.com
        )

    [1] => Array
        (
            [name] => User.Two 
            [email] => User.Two@mail.com
        )

    [2] => Array
        (
            [name] => User.Three 
            [email] => User.Three@mail.com
        )
)

我遇到的问题是运行时间仅添加到预期的第10个元素但我希望元素0-9具有相同的运行时间和10-20等。我将如何实现这样的事情??

2 个答案:

答案 0 :(得分:1)

可能更容易这样总是添加运行时但为每个10更新它:

$time = '00:00:00';
foreach($agent_arr as $key => $value) {
    if($key % 10 === 0) {
        $temp = strtotime("+$k minutes", strtotime($time));
        $runTime = date('H:i', $temp);
    }
    $agent_arr[$key]['runtime'] = $runTime;
}

答案 1 :(得分:0)

这是我过于复杂的解决方案(可能没必要):

$new_array = array();

foreach(array_chunk($array, 10 /* Your leap number would go here */) as $k => $v)
{
    array_walk($v, function($value, $key) use (&$new_array){
        $value['time'] = $time;
        $new_array[] = $value;
    });
}