質問編集履歴

2

2020-12-09 11:13追記

2020/12/09 02:13

投稿

ringorin
ringorin

スコア40

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,5 @@
1
+ ###実現したいこと
2
+
1
3
  お世話になります。
2
4
 
3
5
  `group`の値ごとにグループ化し、任意の連番を付けたいです。
@@ -54,6 +56,8 @@
54
56
 
55
57
  ```
56
58
 
59
+ ###試していること
60
+
57
61
  まず`foreach`でキーをつけるまではいいのですが、これではグループ化できません。
58
62
 
59
63
  ```php
@@ -179,3 +183,63 @@
179
183
  ```
180
184
 
181
185
  アドバイス宜しくお願い致します。
186
+
187
+
188
+
189
+ ###2020-12-09 11:13追記
190
+
191
+ その後、以下のように二回`foreach`をかければできましたが、泥臭すぎる印象です。
192
+
193
+ ```php
194
+
195
+ /*
196
+
197
+ グループ化
198
+
199
+ --------------*/
200
+
201
+ $grouped = [];
202
+
203
+ foreach ( $rows as $row ) {
204
+
205
+ $group = $row['group'];
206
+
207
+ $grouped[$group][] = $row;
208
+
209
+ }
210
+
211
+
212
+
213
+ /*
214
+
215
+ キーをつける
216
+
217
+ --------------*/
218
+
219
+ $result = [];
220
+
221
+ $i = 1;
222
+
223
+ foreach ( $grouped as $group => $array ) {
224
+
225
+ $key = 'key_' . $i;
226
+
227
+ $result[$key] = $array;
228
+
229
+ $i++;
230
+
231
+ }
232
+
233
+
234
+
235
+ /*
236
+
237
+ 結果を確認
238
+
239
+ --------------*/
240
+
241
+ var_dump($result);
242
+
243
+ ```
244
+
245
+ もう少しいい方法ありましたら宜しくお願い致します。

1

コメントアウトで説明を追加

2020/12/09 02:13

投稿

ringorin
ringorin

スコア40

test CHANGED
File without changes
test CHANGED
@@ -58,6 +58,12 @@
58
58
 
59
59
  ```php
60
60
 
61
+ /*
62
+
63
+ キーをつける
64
+
65
+ --------------*/
66
+
61
67
  $result = [];
62
68
 
63
69
  $i = 1;
@@ -72,6 +78,14 @@
72
78
 
73
79
  }
74
80
 
81
+
82
+
83
+ /*
84
+
85
+ 結果を確認
86
+
87
+ --------------*/
88
+
75
89
  var_dump($result);
76
90
 
77
91
  ```
@@ -79,6 +93,12 @@
79
93
  今度はグループ化しようと思うと、キーがつけられません。
80
94
 
81
95
  ```php
96
+
97
+ /*
98
+
99
+ グループ化
100
+
101
+ --------------*/
82
102
 
83
103
  $result = [];
84
104
 
@@ -90,6 +110,14 @@
90
110
 
91
111
  }
92
112
 
113
+
114
+
115
+ /*
116
+
117
+ 結果を確認
118
+
119
+ --------------*/
120
+
93
121
  var_dump($result);
94
122
 
95
123
  ```
@@ -98,7 +126,11 @@
98
126
 
99
127
  ```php
100
128
 
129
+ /*
101
130
 
131
+ グループ化
132
+
133
+ --------------*/
102
134
 
103
135
  $result = [];
104
136
 
@@ -109,6 +141,14 @@
109
141
  $result[$group][] = $row;
110
142
 
111
143
  }
144
+
145
+
146
+
147
+ /*
148
+
149
+ キーをつける
150
+
151
+ --------------*/
112
152
 
113
153
  // STEP1. array_values で0からになるが、1からにしたいので余分な値を先頭に一つ追加しておく
114
154
 
@@ -126,7 +166,13 @@
126
166
 
127
167
  extract($result, EXTR_PREFIX_ALL, 'key_');
128
168
 
169
+
170
+
129
- // 結果を確認
171
+ /*
172
+
173
+ 結果を確認
174
+
175
+ --------------*/
130
176
 
131
177
  var_dump($result);
132
178