在foreach循环PHP中每年输出一年

时间:2015-09-13 11:55:21

标签: php mysql arrays foreach

我有一个mysql查询,在foreach循环中输出假期。例如。 2015年1月15日Steven假日,3月12日jim假日2月20日jon假期2016年1月10日jon假期等。如何列出一年中的所有月份而不仅仅是假期预订的月份?

div

我的想法是创建一个包含所有月份的数组,然后将此数组与包含来自mysql的所有数据的数组合并。我试过这个没有成功。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

要列出所有月份,您只需要通过它们运行foreach循环。在这种情况下无需合并:

$monthx = array('January', 'Febuary', 'March', 'April', 'May', 
  'June', 'July', 'August', 'September', 'October', 'November', 'December'); 

while ($row = mysqli_fetch_assoc($result)) { 
  $year = $row['year'];
  $month = $row['month'];
  $years[$year][$month][] = $row;
  //print_r($something);
}

foreach($years as $year => $months)  {
  echo '<b>Year &nbsp;'.$year. '</b><br>';

  foreach ($monthx as $month) {
    echo '<b>Month &nbsp;'.$month. '</b><br>';
    if (isset($months[$month]))
    {
      foreach($months[$month] as $item) {
        echo $item['employee']. '&nbsp;-&nbsp;' .$item['startit'].'&nbsp;-&nbsp;'.$item['end'].'<br/>';
      }
    }
  }
}