質問編集履歴
2
2020-12-09 11:13追記
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
コメントアウトで説明を追加
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
|
|