首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >For和Foreach Loops打印多个结果

For和Foreach Loops打印多个结果
EN

Stack Overflow用户
提问于 2018-11-02 01:00:19
回答 1查看 79关注 0票数 0

这就是我想要的结果:

代码语言:javascript
复制
January 2018  
Division A  
Division B  
Division C  

February 2018
Division A  
Division B  
Division C  

..so on..

在控制器中,这是代码:

代码语言:javascript
复制
$i = 0;
for ($dd = $start_date; $dd <= $last_date;) {

    $month_iteration = date("F Y",strtotime($dd));
    $data['months'][$i] = $month_iteration; // this successfully saves months in months array

    $dd = date('Y-m-d', strtotime($dd . 'next month')); // ctr++
    $i++;
}

foreach ($data['months'] as $m_key) { // for every month saved, I need to print all divisions
    $data['months'][$m_key]['divisions'] = $this->division_model->get_divisions();
}

通常情况下,当我在内部使用foreach时,它会工作得很好。在这种情况下,除了使用for循环之外,我不知道如何在数组中节省数月。

有了上述代码,就会产生:

代码语言:javascript
复制
January 2018
error Invalid argument supplied for foreach()
February 2018
error Invalid argument supplied for foreach()
Array
Division A Division B Division C
Array
Division A Division B Division C

因此,它分别打印月份和除法,并乘以(?)

我尝试使用以下代码在for循环中保存分区:

代码语言:javascript
复制
$data['months'][$i]['divisions'] = $this->division_model->get_divisions();

当我这么做的时候,var_dump($data)部门没有显示任何东西。我明白我使用这种方法也是错误的。

我做错什么了?满足所需结果的最佳方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-02 11:21:46

我想这会对你有帮助。

代码语言:javascript
复制
$weeks['start_date'] = '2018/01/01';
$weeks['end_date'] = '2018/08/01';
$daterange = new DatePeriod(new DateTime($weeks['start_date']), new DateInterval('P1M'), new DateTime($weeks['end_date']));
$weekDayList = array();
foreach ($daterange as $date) {
    $weekDayList[$date->format("F Y")]['divisions'] =  ['division1','division2','division3'];
}

echo "<pre>";
print_r($weekDayList);

如果这是您要寻找的结果:

代码语言:javascript
复制
Array
(
    [January 2018] => Array
        (
            [divisions] => Array
                (
                    [0] => division1
                    [1] => division2
                    [2] => division3
                )

        )

    [February 2018] => Array
        (
            [divisions] => Array
                (
                    [0] => division1
                    [1] => division2
                    [2] => division3
                )

        )

    [March 2018] => Array
        (
            [divisions] => Array
                (
                    [0] => division1
                    [1] => division2
                    [2] => division3
                )

        )

    [April 2018] => Array
        (
            [divisions] => Array
                (
                    [0] => division1
                    [1] => division2
                    [2] => division3
                )

        )

    [May 2018] => Array
        (
            [divisions] => Array
                (
                    [0] => division1
                    [1] => division2
                    [2] => division3
                )

        )

    [June 2018] => Array
        (
            [divisions] => Array
                (
                    [0] => division1
                    [1] => division2
                    [2] => division3
                )

        )

    [July 2018] => Array
        (
            [divisions] => Array
                (
                    [0] => division1
                    [1] => division2
                    [2] => division3
                )

        )

)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53111380

复制
相关文章

相似问题

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