php日历和多维数组

php日历和多维数组,php,arrays,multidimensional-array,calendar,Php,Arrays,Multidimensional Array,Calendar,我有一个日历日期数组和一个多维报告数组,其中报告的关键是日期 日历日期数组结构 Array ( [1] => 2014-05-01 [2] => 2014-05-02 [3] => 2014-05-03 [4] => 2014-05-04 [5] => 2014-05-05 [6] => 2014-05-06 [7] => 2014-05-07 [8]

我有一个日历日期数组和一个多维报告数组,其中报告的关键是日期

日历日期数组结构

  Array
  (
      [1] => 2014-05-01
      [2] => 2014-05-02
      [3] => 2014-05-03
      [4] => 2014-05-04
      [5] => 2014-05-05
      [6] => 2014-05-06
      [7] => 2014-05-07
      [8] => 2014-05-08
      [9] => 2014-05-09
      [10] => 2014-05-10
      [11] => 2014-05-11
      [12] => 2014-05-12
      [13] => 2014-05-13
      [14] => 2014-05-14
      [15] => 2014-05-15
      [16] => 2014-05-16
      [17] => 2014-05-17
      [18] => 2014-05-18
      [19] => 2014-05-19
      [20] => 2014-05-20
      [21] => 2014-05-21
      [22] => 2014-05-22
      [23] => 2014-05-23
      [24] => 2014-05-24
      [25] => 2014-05-25
      [26] => 2014-05-26
      [27] => 2014-05-27
      [28] => 2014-05-28
      [29] => 2014-05-29
      [30] => 2014-05-30
      [31] => 2014-05-31
     )
以及我的报告数组结构

 Array
  (
[2014-05-01] => Array
    (
        [0] => 16
        [1] => 17
        [2] => 18
        [3] => 20
        [4] => 21
        [5] => 22
        [6] => 15
        [7] => 14
        [8] => 13
        [9] => 1
        [10] => 3
        [11] => 4
        [12] => 5
        [13] => 12
    )

[2014-05-03] => Array
    (
        [0] => 5
        [1] => 4
        [2] => 3
        [3] => 1
        [4] => 40
    )

[2014-05-11] => Array
    (
        [0] => 2
        [1] => 5
        [2] => 4
        [3] => 3
        [4] => 7
        [5] => 8
        [6] => 9
        [7] => 10
        [8] => 6
        [9] => 1
    )

[2014-05-17] => Array
    (
        [0] => 3
        [1] => 10
        [2] => 9
        [3] => 8
        [4] => 7
        [5] => 6
        [6] => 2
        [7] => 5
        [8] => 4
        [9] => 1
    )

[2014-05-18] => Array
    (
        [0] => 4
        [1] => 5
        [2] => 3
        [3] => 1
    )

[2014-05-19] => Array
    (
        [0] => 5
        [1] => 4
        [2] => 3
        [3] => 1
    )

[2014-05-20] => Array
    (
        [0] => 1
        [1] => 9
        [2] => 8
        [3] => 7
        [4] => 6
        [5] => 2
        [6] => 5
        [7] => 4
        [8] => 3
        [9] => 10
    )

[2014-05-26] => Array
    (
        [0] => 1
        [1] => 3
        [2] => 4
        [3] => 5
    )

[2014-05-27] => Array
    (
        [0] => 10
        [1] => 2
        [2] => 3
        [3] => 4
        [4] => 5
        [5] => 9
        [6] => 1
        [7] => 6
        [8] => 8
        [9] => 7
    )

  )

现在,我想循环遍历日历,并为日历数组中的每个值添加与报表数组键匹配的日期,例如日期,我想将报表附加到日历值,并使用值日历作为报表的键。另一方面,我想添加一个字符串,表示未完成报表

我想我可以这样做

    foreach ($calendar as $cal) 
    {
        foreach ($report as $key => $rdate) 
        {
            if ($key == $cal) 
            {
                $calendar[][$cal] = $rdate;
            }
        }
    }
但是,这只是将它们添加到日历数组的末尾,而不是日历值和报告键匹配的位置

像这样

  Array
 (
[1] => 2014-05-01
[2] => 2014-05-02
[3] => 2014-05-03
[4] => 2014-05-04
[5] => 2014-05-05
[6] => 2014-05-06
[7] => 2014-05-07
[8] => 2014-05-08
[9] => 2014-05-09
[10] => 2014-05-10
[11] => 2014-05-11
[12] => 2014-05-12
[13] => 2014-05-13
[14] => 2014-05-14
[15] => 2014-05-15
[16] => 2014-05-16
[17] => 2014-05-17
[18] => 2014-05-18
[19] => 2014-05-19
[20] => 2014-05-20
[21] => 2014-05-21
[22] => 2014-05-22
[23] => 2014-05-23
[24] => 2014-05-24
[25] => 2014-05-25
[26] => 2014-05-26
[27] => 2014-05-27
[28] => 2014-05-28
[29] => 2014-05-29
[30] => 2014-05-30
[31] => 2014-05-31
[32] => Array
    (
        [2014-05-01] => Array
            (
                [0] => 16
                [1] => 17
                [2] => 18
                [3] => 20
                [4] => 21
                [5] => 22
                [6] => 15
                [7] => 14
                [8] => 13
                [9] => 1
                [10] => 3
                [11] => 4
                [12] => 5
                [13] => 12
            )

    )

[33] => Array
    (
        [2014-05-03] => Array
            (
                [0] => 5
                [1] => 4
                [2] => 3
                [3] => 1
                [4] => 40
            )

    )

[34] => Array
    (
        [2014-05-11] => Array
            (
                [0] => 2
                [1] => 5
                [2] => 4
                [3] => 3
                [4] => 7
                [5] => 8
                [6] => 9
                [7] => 10
                [8] => 6
                [9] => 1
            )

    )

[35] => Array
    (
        [2014-05-17] => Array
            (
                [0] => 3
                [1] => 10
                [2] => 9
                [3] => 8
                [4] => 7
                [5] => 6
                [6] => 2
                [7] => 5
                [8] => 4
                [9] => 1
            )

    )

[36] => Array
    (
        [2014-05-18] => Array
            (
                [0] => 4
                [1] => 5
                [2] => 3
                [3] => 1
            )

    )

[37] => Array
    (
        [2014-05-19] => Array
            (
                [0] => 5
                [1] => 4
                [2] => 3
                [3] => 1
            )

    )

[38] => Array
    (
        [2014-05-20] => Array
            (
                [0] => 1
                [1] => 9
                [2] => 8
                [3] => 7
                [4] => 6
                [5] => 2
                [6] => 5
                [7] => 4
                [8] => 3
                [9] => 10
            )

    )

[39] => Array
    (
        [2014-05-26] => Array
            (
                [0] => 1
                [1] => 3
                [2] => 4
                [3] => 5
            )

    )

[40] => Array
    (
        [2014-05-27] => Array
            (
                [0] => 10
                [1] => 2
                [2] => 3
                [3] => 4
                [4] => 5
                [5] => 9
                [6] => 1
                [7] => 6
                [8] => 8
                [9] => 7
            )

    )

   )
我想要这个而不是这个

Array (
       [1] => 2014-05-01 => Array
                            (
                            [0] => 16
                            [1] => 17
                            [2] => 18
                            [3] => 20
                            ...........
                     )
我想在我把头撞在墙上的地方,我从树上看不到树林

任何帮助都是伟大的,任何指导都是伟大的


关于迈克

所以通过写这篇文章,我必须弄明白,所以它实际上帮助了我,只是通过形成问题,这就是我所改变的

    foreach ($dates_month_with_reports as $cal) 
    {
        foreach ($reportdates as $key => $rdate) 
        {
            if ($key == $cal) 
            {
                            //took away the extra array 
                $dates_month_with_reports[$cal] = $rdate;
            }
        }
    }
在日历数组中,我也将日期添加到了键中,现在它给了我这个

Array
(
[2014-05-01] => Array
    (
        [0] => 16
        [1] => 17
        [2] => 18
        [3] => 20
        [4] => 21
        [5] => 22
        [6] => 15
        [7] => 14
        [8] => 13
        [9] => 1
        [10] => 3
        [11] => 4
        [12] => 5
        [13] => 12
    )

[2014-05-02] => 2014-05-02
[2014-05-03] => Array
    (
        [0] => 5
        [1] => 4
        [2] => 3
        [3] => 1
        [4] => 40
    )

[2014-05-04] => 2014-05-04
[2014-05-05] => 2014-05-05
[2014-05-06] => 2014-05-06
[2014-05-07] => 2014-05-07
[2014-05-08] => 2014-05-08
[2014-05-09] => 2014-05-09
[2014-05-10] => 2014-05-10
[2014-05-11] => Array
    (
        [0] => 2
        [1] => 5
        [2] => 4
        [3] => 3
        [4] => 7
        [5] => 8
        [6] => 9
        [7] => 10
        [8] => 6
        [9] => 1
    )

[2014-05-12] => 2014-05-12
[2014-05-13] => 2014-05-13
[2014-05-14] => 2014-05-14
[2014-05-15] => 2014-05-15
[2014-05-16] => 2014-05-16
[2014-05-17] => Array
    (
        [0] => 3
        [1] => 10
        [2] => 9
        [3] => 8
        [4] => 7
        [5] => 6
        [6] => 2
        [7] => 5
        [8] => 4
        [9] => 1
    )

[2014-05-18] => Array
    (
        [0] => 4
        [1] => 5
        [2] => 3
        [3] => 1
    )

[2014-05-19] => Array
    (
        [0] => 5
        [1] => 4
        [2] => 3
        [3] => 1
    )

[2014-05-20] => Array
    (
        [0] => 1
        [1] => 9
        [2] => 8
        [3] => 7
        [4] => 6
        [5] => 2
        [6] => 5
        [7] => 4
        [8] => 3
        [9] => 10
    )

[2014-05-21] => 2014-05-21
[2014-05-22] => 2014-05-22
[2014-05-23] => 2014-05-23
[2014-05-24] => 2014-05-24
[2014-05-25] => 2014-05-25
[2014-05-26] => Array
    (
        [0] => 1
        [1] => 3
        [2] => 4
        [3] => 5
    )

[2014-05-27] => Array
    (
        [0] => 10
        [1] => 2
        [2] => 3
        [3] => 4
        [4] => 5
        [5] => 9
        [6] => 1
        [7] => 6
        [8] => 8
        [9] => 7
    )

[2014-05-28] => 2014-05-28
[2014-05-29] => 2014-05-29
[2014-05-30] => 2014-05-30
[2014-05-31] => 2014-05-31
 )

我很抱歉浪费了你的时间,我不是故意的,但是在我写了这个问题之后,a就明白了。

我想将报告附加到calendar值,并使用值calendar作为报告的键=>如果没有后续的AddNo reports,这部分不正是你在报告数组中已经拥有的吗?[1] =>2014-05-01=>。。。没有道理。你不能有两把钥匙。那么,问题不能简单地归结为我想在报告数组中填入它尚未包含的日期吗?谢谢你的回答,我没有想清楚。如果你检查我的答案,你就有点一针见血了。编程需要一些我有时缺乏的思考结构。
$calendar1 = array();
foreach ($calendar as $cal) 
{
    foreach ($report as $key => $rdate) 
    {
        if ($key == $cal) 
        {
            $calendar1[][$cal] = $rdate;
        }
    }
}