teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

補足で最後の</table>が無かったので追加

2017/11/08 14:38

投稿

umikaze21
umikaze21

スコア13

title CHANGED
File without changes
body CHANGED
@@ -59,4 +59,6 @@
59
59
  <tr><td>9:00</td><td rowspan='3'>フットサル</td><td></td><td rowspan='2'>バスケット</td></tr>
60
60
  <tr><td>10:00</td><td rowspan='2'>バトミントン</td></tr>
61
61
  <tr><td>11:00</td><td rowspan='2'>バレーボール</td></tr>
62
- <tr><td>12:00</td><td>ハンドボール</td><td></td></tr>
62
+ <tr><td>12:00</td><td>ハンドボール</td><td></td></tr>
63
+
64
+ </table>

3

出力結果を追記しました。

2017/11/08 14:38

投稿

umikaze21
umikaze21

スコア13

title CHANGED
File without changes
body CHANGED
@@ -52,4 +52,11 @@
52
52
 
53
53
  echo $table;
54
54
 
55
- ```
55
+ ```
56
+ 【補足】$table の中身です。期待通りの結果は得られてはいます。
57
+ <table border='1'>
58
+ <tr><td>時間</td><td>月</td><td>火</td><td>水</td></tr>
59
+ <tr><td>9:00</td><td rowspan='3'>フットサル</td><td></td><td rowspan='2'>バスケット</td></tr>
60
+ <tr><td>10:00</td><td rowspan='2'>バトミントン</td></tr>
61
+ <tr><td>11:00</td><td rowspan='2'>バレーボール</td></tr>
62
+ <tr><td>12:00</td><td>ハンドボール</td><td></td></tr>

2

コードの字下げなど

2017/11/08 14:03

投稿

umikaze21
umikaze21

スコア13

title CHANGED
File without changes
body CHANGED
@@ -6,49 +6,50 @@
6
6
  アルゴリズム的、PHP的に洗練されたシンプルな書き方をご存知の方いましたら
7
7
  教えていただければ幸いです。
8
8
 
9
+
10
+
9
- ```ここに言語を入力```
11
+ ```ここに言語を入力
10
12
  $data[0]=array("時間","月","火","水");
11
13
  $data[1]=array("9:00","フットサル","","バスケット");
12
14
  $data[2]=array("10:00","フットサル","バトミントン","バスケット");
13
15
  $data[3]=array("11:00","フットサル","バトミントン","バレーボール");
14
16
  $data[4]=array("12:00","ハンドボール","","バレーボール");
15
17
 
16
-
17
18
  $i_max = count($data);
18
19
  $j_max = count($data[0]);
19
20
 
20
-
21
21
  //列ごとのダブりを調べて$rowspanに記録
22
22
  for( $j=0; $j< $j_max ; $j++){
23
- $i=0;
23
+ $i=0;
24
- while( $i<$i_max ){
24
+ while( $i<$i_max ){
25
- $k=1;
25
+ $k=1;
26
- $rowspan[$i][$j]=1;
26
+ $rowspan[$i][$j]=1;
27
- while( (($i+$k) < $i_max) && ( $data[$i][$j]==$data[$i+$k][$j] )){
27
+ while( (($i+$k) < $i_max) && ( $data[$i][$j]==$data[$i+$k][$j] )){
28
- $rowspan[$i][$j]++;
28
+ $rowspan[$i][$j]++;
29
- $rowspan[$i+$k][$j]=0;
29
+ $rowspan[$i+$k][$j]=0;
30
- $k++;
30
+ $k++;
31
- }
31
+ }
32
- $i = $i+$k;
32
+ $i = $i+$k;
33
- }
33
+ }
34
34
  }
35
35
 
36
36
  //表のHTMLを作成
37
37
  $table = "<table border='1'>\n";
38
38
  for( $i=0; $i< $i_max ; $i++){
39
- $table .= "<tr>";
39
+ $table .= "<tr>";
40
- for( $j=0; $j< $j_max ; $j++){
40
+ for( $j=0; $j< $j_max ; $j++){
41
- if( 1 == $rowspan[$i][$j] ){
41
+ if( 1 == $rowspan[$i][$j] ){
42
- $table .="<td>". $data[$i][$j] ."</td>";
42
+ $table .="<td>". $data[$i][$j] ."</td>";
43
- }
43
+ }
44
- else if( 0 != $rowspan[$i][$j]){
44
+ else if( 0 != $rowspan[$i][$j]){
45
- $td = "<td rowspan='".$rowspan[$i][$j]."'>";
45
+ $td = "<td rowspan='".$rowspan[$i][$j]."'>";
46
- $table .=$td. $data[$i][$j] ."</td>";
46
+ $table .=$td. $data[$i][$j] ."</td>";
47
- }
47
+ }
48
- }
48
+ }
49
- $table .= "</tr>\n";
49
+ $table .= "</tr>\n";
50
50
  }
51
51
  $table .= "\n</table>\n";
52
52
 
53
53
  echo $table;
54
+
54
55
  ```

1

コードを見やすくしてみました。

2017/11/08 13:56

投稿

umikaze21
umikaze21

スコア13

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,7 @@
6
6
  アルゴリズム的、PHP的に洗練されたシンプルな書き方をご存知の方いましたら
7
7
  教えていただければ幸いです。
8
8
 
9
+ ```ここに言語を入力```
9
10
  $data[0]=array("時間","月","火","水");
10
11
  $data[1]=array("9:00","フットサル","","バスケット");
11
12
  $data[2]=array("10:00","フットサル","バトミントン","バスケット");
@@ -49,4 +50,5 @@
49
50
  }
50
51
  $table .= "\n</table>\n";
51
52
 
52
- echo $table;
53
+ echo $table;
54
+ ```