回答編集履歴
4
要求に従いコードを変更
test
CHANGED
@@ -1,44 +1,34 @@
|
|
1
|
-
連想配列にあるものを表示するってことですね。
|
2
|
-
|
3
|
-
```PHP
|
4
|
-
|
5
|
-
<?php
|
6
|
-
|
7
|
-
$data = [
|
8
|
-
|
9
|
-
2016 => [1,2,3,4,5,6,7,8,9,10,11,12],
|
10
|
-
|
11
|
-
2017 => [1,2,3,4,5,6,7,8,9,10,11,12]
|
12
|
-
|
13
|
-
];
|
14
|
-
|
15
|
-
```
|
16
|
-
|
17
|
-
というデータが提供されているとします。
|
18
|
-
|
19
1
|
```PHP
|
20
2
|
|
21
3
|
<table>
|
22
4
|
|
23
5
|
<?php
|
24
6
|
|
7
|
+
$year = 2016;
|
8
|
+
|
25
|
-
|
9
|
+
while($year <= date('Y')) {
|
26
10
|
|
27
11
|
echo "<tr><td>{$year}年</td>";
|
28
12
|
|
29
|
-
for
|
13
|
+
for ($month = 1; $month <= 12; $month++) {
|
30
14
|
|
31
|
-
if (
|
15
|
+
if (sprintf('%04d%02d', $year, $month) > date('Ym')) {
|
32
16
|
|
33
17
|
echo '<td> </td>';
|
34
18
|
|
35
19
|
}
|
36
20
|
|
21
|
+
else {
|
22
|
+
|
37
|
-
echo '<td><a href="'.$year.'-'.sprintf('%02d',$month).'">'.$month.'月</a></td>';
|
23
|
+
echo '<td><a href="'.$year.'-'.sprintf('%02d',$month).'">'.$month.'月</a></td>';
|
24
|
+
|
25
|
+
}
|
38
26
|
|
39
27
|
}
|
40
28
|
|
41
29
|
echo "</tr>";
|
30
|
+
|
31
|
+
$year++;
|
42
32
|
|
43
33
|
}
|
44
34
|
|
@@ -51,3 +41,9 @@
|
|
51
41
|
修正してみました。
|
52
42
|
|
53
43
|
どうでしょうか?
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
他人のコードをコピーして使うのではなく、何をやっているのか理解するようにしてくださいね。
|
48
|
+
|
49
|
+
本当に単純なことしかしていませんので・・・
|
3
再度修正
test
CHANGED
@@ -1,31 +1,53 @@
|
|
1
|
+
連想配列にあるものを表示するってことですね。
|
2
|
+
|
1
3
|
```PHP
|
2
4
|
|
3
|
-
|
5
|
+
<?php
|
4
6
|
|
5
|
-
$
|
7
|
+
$data = [
|
6
8
|
|
9
|
+
2016 => [1,2,3,4,5,6,7,8,9,10,11,12],
|
7
10
|
|
11
|
+
2017 => [1,2,3,4,5,6,7,8,9,10,11,12]
|
8
12
|
|
9
|
-
|
13
|
+
];
|
10
14
|
|
11
|
-
|
15
|
+
```
|
12
16
|
|
13
|
-
|
17
|
+
というデータが提供されているとします。
|
14
18
|
|
15
|
-
|
19
|
+
```PHP
|
20
|
+
|
21
|
+
<table>
|
22
|
+
|
23
|
+
<?php
|
24
|
+
|
25
|
+
foreach ($data as $year => $months) {
|
26
|
+
|
27
|
+
echo "<tr><td>{$year}年</td>";
|
28
|
+
|
29
|
+
foreach ($months as $month) {
|
30
|
+
|
31
|
+
if ($year >= date('Y') && $month > (int)date('n')) {
|
32
|
+
|
33
|
+
echo '<td> </td>';
|
16
34
|
|
17
35
|
}
|
18
36
|
|
37
|
+
echo '<td><a href="'.$year.'-'.sprintf('%02d',$month).'">'.$month.'月</a></td>';
|
38
|
+
|
39
|
+
}
|
40
|
+
|
19
|
-
|
41
|
+
echo "</tr>";
|
20
42
|
|
21
43
|
}
|
44
|
+
|
45
|
+
?>
|
46
|
+
|
47
|
+
</table>
|
22
48
|
|
23
49
|
```
|
24
50
|
|
25
51
|
修正してみました。
|
26
52
|
|
27
|
-
$fromYear ~ 現在までが配列$dataに二次元配列として格納されます。
|
28
|
-
|
29
|
-
|
30
|
-
|
31
53
|
どうでしょうか?
|
2
コードの更新
test
CHANGED
@@ -1,21 +1,31 @@
|
|
1
1
|
```PHP
|
2
2
|
|
3
|
-
$data = [
|
3
|
+
$data = [];
|
4
4
|
|
5
|
-
for
|
5
|
+
$fromYear = 2014;
|
6
6
|
|
7
|
-
if ($i >= date('n')) {
|
8
7
|
|
9
|
-
continue;
|
10
8
|
|
11
|
-
|
9
|
+
for ($y = $fromYear; $y <= date('Y'); $y++) {
|
12
10
|
|
11
|
+
for ($m=1; $m<=12; $m++) {
|
12
|
+
|
13
|
+
if ($m > date('n') && $y >= date('Y')) {
|
14
|
+
|
15
|
+
break;
|
16
|
+
|
17
|
+
}
|
18
|
+
|
13
|
-
$data[
|
19
|
+
$data[$y][] = $m;
|
14
20
|
|
15
21
|
}
|
16
22
|
|
17
23
|
```
|
18
24
|
|
19
|
-
みた
|
25
|
+
修正してみました。
|
20
26
|
|
21
|
-
|
27
|
+
$fromYear ~ 現在までが配列$dataに二次元配列として格納されます。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
どうでしょうか?
|
1
コードの間違いの変更
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
for ($i=0; $i<12; $i++) {
|
6
6
|
|
7
|
-
if ($i =
|
7
|
+
if ($i >= date('n')) {
|
8
8
|
|
9
9
|
continue;
|
10
10
|
|