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

質問編集履歴

1

コメントを受けて、モックを追加しました。

2020/10/07 10:04

投稿

machinokoziya
machinokoziya

スコア11

title CHANGED
File without changes
body CHANGED
@@ -3,101 +3,134 @@
3
3
  Laravelで体育館の利用状況のシステムを作っていて
4
4
  各体育館の住所で重複している場合はセルを結合したいです。
5
5
 
6
- ```ここに言語を入力
6
+ ▼理想のアウトプット
7
+ ``` 
7
- App\School Object
8
+ <table>
9
+ <thead>
8
- (
10
+ <tr>
9
- [original:protected] => Array
11
+ <th>校舎住所1</th>
12
+ <th>校舎住所2</th>
10
- (
13
+ </tr>
11
- [school_name] => 大阪
14
+ </thead>
15
+ <tbody>
16
+ <tr>
17
+ <td rowspan="3">大阪</td>
18
+ <td>123-14</td>
19
+ </tr>
20
+ <tr>
21
+ <td>123-15</td>
22
+ </tr>
23
+ <tr>
24
+ <td>123-16</td>
25
+ </tr>
26
+ <tr>
27
+ <td>長崎</td>
28
+ <td>123-14</td>
29
+ </tr>
30
+ <tr>
31
+ <td rowspan="2">沖縄</td>
32
+ <td>123-14</td>
33
+ </tr>
34
+ <tr>
35
+ <td>123-15</td>
36
+ </tr>
37
+ </tbody>
12
- [school_colspan] => 3
38
+ </table>
13
- )
14
- )
15
39
  ```
16
- のように先頭のデータに重複件数を加えて
17
- Viewで[school_colspan]のあり/なしによってtdを出し分け、
18
- ある場合はcolspanに件数を出力しようと思っています。
19
40
 
41
+ foreachで前回の校舎住所1が同じ場合はrowspan用のデータを加えたいのですが
20
- ために下記データに重複件数を加える書方を
42
+ ひとつ前比較しかでず、困っています。
21
- ご存知の方いましたら教えていただけますいただければ幸いです。
43
+ どなたか解決方法ご存知の方いましたら教えていただけます幸いです。
22
44
 
45
+ ▼これだと3件以上の重複に対応できていない。。
46
+ ``` 
47
+ $temp = "A";
48
+ foreach($schools as $key => $school){
49
+ if($school->school_location1 == $temp){
50
+ $schools[$key-1]->school->school_count++;
51
+ }
52
+ $temp = $school->school->school_location1;
53
+ }
54
+ ```
23
- ### 参考データ
55
+ ▼元データ
24
56
 
25
57
  ```
26
58
  App\School Object
27
59
  (
28
60
  [attributes:protected] => Array
29
61
  (
30
- [school_name] => 大阪
62
+ [school_location1] => 大阪
63
+ [school_location2] => 123-14
31
64
  )
32
65
  [original:protected] => Array
33
66
  (
34
- [school_name] => 大阪
67
+ [school_location1] => 大阪
68
+ [school_location2] => 123-14
35
69
  )
36
70
  )
37
71
  App\School Object
38
72
  (
39
73
  [attributes:protected] => Array
40
74
  (
41
- [school_name] => 大阪
75
+ [school_location1] => 大阪
76
+ [school_location2] => 123-15
42
77
  )
43
78
  [original:protected] => Array
44
79
  (
45
- [school_name] => 大阪
80
+ [school_location1] => 大阪
81
+ [school_location2] => 123-15
46
82
  )
47
83
  )
48
84
  App\School Object
49
85
  (
50
86
  [attributes:protected] => Array
51
87
  (
52
- [school_name] => 大阪
88
+ [school_location1] => 大阪
89
+ [school_location2] => 123-16
53
90
  )
54
91
  [original:protected] => Array
55
92
  (
56
- [school_name] => 大阪
93
+ [school_location1] => 大阪
94
+ [school_location2] => 123-16
57
95
  )
58
96
  )
59
97
  App\School Object
60
98
  (
61
99
  [attributes:protected] => Array
62
100
  (
63
- [school_name] => 福岡
101
+ [school_location1] => 長崎
102
+ [school_location2] => 123-14
64
103
  )
65
104
  [original:protected] => Array
66
105
  (
67
- [school_name] => 福岡
106
+ [school_location1] => 長崎
107
+ [school_location2] => 123-14
68
108
  )
69
109
  )
70
110
  App\School Object
71
111
  (
72
112
  [attributes:protected] => Array
73
113
  (
74
- [school_name] => 長崎
114
+ [school_location1] => 沖縄
115
+ [school_location2] => 123-14
75
116
  )
76
117
  [original:protected] => Array
77
118
  (
78
- [school_name] => 長崎
119
+ [school_location1] => 沖縄
120
+ [school_location2] => 123-14
79
121
  )
80
122
  )
81
123
  App\School Object
82
124
  (
83
125
  [attributes:protected] => Array
84
126
  (
85
- [school_name] => 沖縄
127
+ [school_location1] => 沖縄
128
+ [school_location2] => 123-15
86
129
  )
87
130
  [original:protected] => Array
88
131
  (
89
- [school_name] => 沖縄
132
+ [school_location1] => 沖縄
133
+ [school_location2] => 123-15
90
134
  )
91
135
  )
92
- App\School Object
93
- (
94
- [attributes:protected] => Array
95
- (
96
- [school_name] => 沖縄
97
- )
98
- [original:protected] => Array
99
- (
100
- [school_name] => 沖縄
101
- )
102
- )
103
136
  ```