目前我的$years
数组如下所示:
$years = array('2013',
'2014',
'2015');
那将打印从1月到12月的所有月份。到那一年。但是说我想在2015年将jan打印到oct。然后我相信阵列必须看起来像这样:
$years = array('2013'=>array(1,2,3,4,5,6,7,8,9,10,11,12),
'2014'=>array(1,2,3,4,5,6,7,8,9,10,11,12),
'2015'=>array(1,2,3,4,5,6,7,8,9,10));
这样我就可以选择打印多少个月了......
但是当前的代码给了我错误:Notice: Array to string conversion in
,代码如下所示:
$months = array(
1=>'januari',
2=>'februari',
3=>'mars',
4=>'april',
5=>'maj',
6=>'juni',
7=>'juli',
8=>'augusti',
9=>'september',
10=>'oktober',
11=>'november',
12=>'december');
$years = array('2013'=>array(1,2,3,4,5,6,7,8,9,10,11,12),
'2014'=>array(1,2,3,4,5,6,7,8,9,10,11,12),
'2015'=>array(1,2,3,4,5,6,7,8,9,10));
echo var_dump($years); //debug, seems right
$data = new stdClass;
foreach($years as $year){
$data->$year = $months;
}
foreach($data as $year => $months) {
echo '<b>Year: '.$year.'</b><br>';
foreach($months as $month) {
echo 'Month: '.$month.'<br>';
}
}
我的问题是:如何在特定年份添加数月?
**2013**
jan
...
dec
**2014**
jan
...
dec
**2015**
jan
...
oct
答案 0 :(得分:0)
您需要使用当年的密钥,目前您正在使用整个阵列。 这样的事情可以解决问题:
$data = new stdClass;
foreach($years as $year => $yearMonths){
$data->$year = $yearMonths;
}
我还建议对数据打印进行一些改进
foreach($data as $year => $yearMonths) {
echo '<b>Year: '.$year.'</b><br>';
foreach($yearMonths as $month) {
echo 'Month: '.$months[$month].'<br>';
}
}
最后但并非最不重要 - 您不需要var_dump()
这是完整的工作http://ideone.com/4qnqzu