質問編集履歴
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -168,21 +168,113 @@
|
|
168
168
|
|
169
169
|
###【考えたコード】
|
170
170
|
|
171
|
+
追記:質問時のコードが支離滅裂であったので、papinianus様から質問内容に沿った形でご修正頂きました。
|
172
|
+
|
171
173
|
```php
|
172
174
|
|
173
175
|
<?php
|
174
176
|
|
175
177
|
/*
|
176
178
|
|
179
|
+
配列
|
180
|
+
|
181
|
+
- 同じ日付で 'adtion' の値は重複しない ('2019-01-02'に'escape'が2つあるとかは無い)
|
182
|
+
|
183
|
+
- 'time' と 'id' は同じ数(いつ誰がやったかを示す)
|
184
|
+
|
185
|
+
- 'page' は配列3つずつ増えていく(ページ分割に使う)
|
186
|
+
|
187
|
+
*/
|
188
|
+
|
189
|
+
$array = array(
|
190
|
+
|
191
|
+
'2019-01-02'=> array(
|
192
|
+
|
193
|
+
array(
|
194
|
+
|
195
|
+
'action'=>'escape',
|
196
|
+
|
197
|
+
'dialogue'=>'覚えてやがれー!',
|
198
|
+
|
199
|
+
'time'=>array('2019-01-02 18:00:00.000','2019-01-01 13:00:00.000'),
|
200
|
+
|
201
|
+
'last_update'=>'2019-01-02 18:00:00.000',
|
202
|
+
|
203
|
+
'id'=>array('9','1'),
|
204
|
+
|
205
|
+
'page'=>'1',
|
206
|
+
|
207
|
+
),
|
208
|
+
|
209
|
+
array(
|
210
|
+
|
211
|
+
'action'=>'attack',
|
212
|
+
|
213
|
+
'target'=>'6',
|
214
|
+
|
215
|
+
'time'=>array('2019-01-02 15:00:00.000','2019-01-02 01:00:00.000'),
|
216
|
+
|
217
|
+
'last_update'=>'2019-01-02 15:00:00.000',
|
218
|
+
|
219
|
+
'id'=>array('14','8'),
|
220
|
+
|
221
|
+
'page'=>'1',
|
222
|
+
|
223
|
+
),
|
224
|
+
|
225
|
+
),
|
226
|
+
|
227
|
+
'2019-01-01'=> array(
|
228
|
+
|
229
|
+
array(
|
230
|
+
|
231
|
+
'action'=>'propose',
|
232
|
+
|
233
|
+
'dialogue'=>'たこ焼きはいかがでしょうか?',
|
234
|
+
|
235
|
+
'time'=>array('2019-01-01 15:00:00.000','2019-01-01 01:00:00.000'),
|
236
|
+
|
237
|
+
'last_update'=>'2019-01-01 15:00:00.000',
|
238
|
+
|
239
|
+
'id'=>array('36','5'),
|
240
|
+
|
241
|
+
'page'=>'1',
|
242
|
+
|
243
|
+
),
|
244
|
+
|
245
|
+
array(
|
246
|
+
|
247
|
+
'action'=>'attack',
|
248
|
+
|
249
|
+
'target'=>'7',
|
250
|
+
|
251
|
+
'time'=>array('2019-01-01 16:00:00.000','2018-12-31 22:00:00.000','2018-12-25 12:00:00.000'),
|
252
|
+
|
253
|
+
'last_update'=>'2019-01-01 16:00:00.000',
|
254
|
+
|
255
|
+
'id'=>array('1','15','3'),
|
256
|
+
|
257
|
+
'page'=>'2', // 4つ目の配列なので2になる
|
258
|
+
|
259
|
+
),
|
260
|
+
|
261
|
+
),
|
262
|
+
|
263
|
+
);
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
/*
|
268
|
+
|
177
269
|
idをリストで出力するための関数
|
178
270
|
|
179
271
|
*/
|
180
272
|
|
181
|
-
function echo_list_id(){
|
273
|
+
function echo_list_id($array/* //here 追加*/){
|
182
|
-
|
274
|
+
|
183
|
-
foreach ($array as $
|
275
|
+
foreach ($array['id'] as $id) { //here
|
184
|
-
|
276
|
+
|
185
|
-
echo '<li>'.$
|
277
|
+
echo '<li>'.$id.'番さん</li>'; //here
|
186
278
|
|
187
279
|
}
|
188
280
|
|
@@ -196,83 +288,87 @@
|
|
196
288
|
|
197
289
|
*/
|
198
290
|
|
199
|
-
function echo_list_content($page){
|
291
|
+
function echo_list_content($array/* //here $pageはやめた*/, $page = "1" /* //here 追加*/){
|
200
292
|
|
201
293
|
// リスト出力
|
202
294
|
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
295
|
+
echo '<ul>';
|
296
|
+
|
297
|
+
foreach ($array as $key => $ks) {
|
298
|
+
|
299
|
+
foreach($ks as $k){ //here
|
300
|
+
|
301
|
+
$date = substr($k['last_update'], 0, strcspn($k['last_update'],' ')); // 日付だけ取得
|
302
|
+
|
303
|
+
// 該当ページの配列だけ出力する
|
304
|
+
|
305
|
+
if( $k['page'] == $page ){
|
306
|
+
|
307
|
+
// attackの場合
|
308
|
+
|
309
|
+
if( $k['action'] == 'attack' ){
|
310
|
+
|
311
|
+
echo '<li>';
|
312
|
+
|
313
|
+
echo '<p>'.$k['target'].'番さんがattackされました!</p>';
|
314
|
+
|
315
|
+
echo '<p>attackした人の一覧です。</p>';
|
316
|
+
|
317
|
+
echo '<ul>'.echo_list_id($k).'</ul>';
|
318
|
+
|
319
|
+
echo '<p>'.$date.'</p>';
|
320
|
+
|
321
|
+
echo '</li>';
|
322
|
+
|
323
|
+
}
|
324
|
+
|
325
|
+
// escapeの場合
|
326
|
+
|
327
|
+
if( $k['action'] == 'escape' ){
|
328
|
+
|
329
|
+
echo '<li>';
|
330
|
+
|
331
|
+
echo '<p>escapeした人の一覧です。</p>';
|
332
|
+
|
333
|
+
echo '<ul>'.echo_list_id($k).'</ul>';
|
334
|
+
|
335
|
+
echo '<p>'.$k['dialogue'].'</p>';
|
336
|
+
|
337
|
+
echo '<p>'.$date.'</p>';
|
338
|
+
|
339
|
+
echo '</li>';
|
340
|
+
|
341
|
+
}
|
342
|
+
|
343
|
+
// proposeの場合
|
344
|
+
|
345
|
+
if( $k['action'] == 'propose' ){
|
346
|
+
|
347
|
+
echo '<li>';
|
348
|
+
|
349
|
+
//here echo '<p><a href="'.$k['page'][0].'">'.$k['page'][0].'番</a>さんと<a href="'.$k['page'][1].'">'.$k['page'][1].'番</a>さんがproposeしています。</p>';
|
350
|
+
|
351
|
+
echo '<p>'.$k['dialogue'].'</p>';
|
352
|
+
|
353
|
+
echo '<p>'.$date.'</p>';
|
354
|
+
|
355
|
+
echo '</li>';
|
356
|
+
|
357
|
+
}
|
358
|
+
|
359
|
+
}
|
360
|
+
|
361
|
+
} //here
|
362
|
+
|
363
|
+
}
|
364
|
+
|
365
|
+
echo '</ul>';
|
366
|
+
|
367
|
+
// 次のページを更新
|
368
|
+
|
369
|
+
$nextpage = $page++;
|
370
|
+
|
371
|
+
//setcookie("page", $nextpage); //here 出力後にcookieかいちゃだめやで
|
276
372
|
|
277
373
|
}
|
278
374
|
|
@@ -290,6 +386,6 @@
|
|
290
386
|
|
291
387
|
// リスト出力
|
292
388
|
|
293
|
-
echo_list_content($
|
389
|
+
echo_list_content($array);
|
294
390
|
|
295
391
|
```
|
1
不要な部分を削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
###【実現したいこと】
|
2
2
|
|
3
|
-
PHPで、次の【対象の配列】を、後述の
|
3
|
+
PHPで、次の【対象の配列】を、後述する【目的の出力】にしたいです。
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
-
そのため
|
7
|
+
そのための【考えたコード】について直すべき部分を教えてもらえませんでしょうか?
|
8
8
|
|
9
9
|
|
10
10
|
|
@@ -24,8 +24,6 @@
|
|
24
24
|
|
25
25
|
- 同じ日付で 'adtion' の値は重複しない ('2019-01-02'に'escape'が2つあるとかは無い)
|
26
26
|
|
27
|
-
- 'last_update' の順に並ぶ(新しいのが先頭に来る)
|
28
|
-
|
29
27
|
- 'time' と 'id' は同じ数(いつ誰がやったかを示す)
|
30
28
|
|
31
29
|
- 'page' は配列3つずつ増えていく(ページ分割に使う)
|
@@ -116,7 +114,7 @@
|
|
116
114
|
|
117
115
|
|
118
116
|
|
119
|
-
###【出力】
|
117
|
+
###【目的の出力】
|
120
118
|
|
121
119
|
上の【対象の配列】をこのようにしたいです。
|
122
120
|
|