首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组的重复输出

数组的重复输出
EN

Stack Overflow用户
提问于 2013-09-23 03:16:05
回答 2查看 37关注 0票数 1
代码语言:javascript
复制
    $timein_out = $this->time_model->get_timein_out($this->input->get('i'));   

    $total_diff= array();
    $hours = array();
    $mins =array();

    foreach($timein_out as $timetest)
     {
        $total_diff[] = strtotime($timetest["Time_out"]) - strtotime($timetest["Time_in"]);

        for($key=0;$key<count($total_diff);$key++)
        {
            $hours[] = intval(floor($total_diff[$key]/3600));
            $mins[] =  intval(($total_diff[$key]-$hours[$key]*3600)/60); 
        }

     };

     echo json_encode($total_diff); // output: [33600,34560,35160]
     echo json_encode($hours); // [9,9,9,9,9,9]
     echo json_encode($mins); //[20,20,36,20,36,46]

实际输出应该是

代码语言:javascript
复制
 echo json_encode($hours); // [9,9,9,]
 echo json_encode($mins); //[20,36,46]

问题:为什么输出是重复的?我的代码有什么问题?:(谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-23 03:23:19

可能你想要内环在外面。尝尝这个。

代码语言:javascript
复制
 foreach($timein_out as $timetest)
 {
    $total_diff[] = strtotime($timetest["Time_out"]) - strtotime($timetest["Time_in"]);

 }
 for($key=0;$key<count($total_diff);$key++)
 {
     $hours[] = intval(floor($total_diff[$key]/3600));
     $mins[] =  intval(($total_diff[$key]-$hours[$key]*3600)/60); 
 }
票数 3
EN

Stack Overflow用户

发布于 2013-09-23 03:20:45

您可以尝试使用unset()$total_diff”,例如:

代码语言:javascript
复制
foreach($timein_out as $timetest) {
    $total_diff[] = strtotime($timetest["Time_out"]) - strtotime($timetest["Time_in"]);

    for($key=0;$key<count($total_diff);$key++) {
        $hours[] = intval(floor($total_diff[$key]/3600));
        $mins[] =  intval(($total_diff[$key]-$hours[$key]*3600)/60); 
    }
    unset($total_diff);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18951280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档