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

回答編集履歴

1

コードにゴミが入っていたので修正

2017/09/02 01:47

投稿

miyahan
miyahan

スコア3095

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  foreach 文を使ってデータベースから取得した結果を出力するのは出来ているので、そこに4つ区切りに <div>, </div> を挿入するようなコードを加えればよいと思います。
2
2
 
3
- 説明のため表示するだけのサンプルコードを示します:
3
+ 説明のため、まず表示するだけのサンプルコードを示します:
4
4
 
5
5
  ```php
6
6
  <?php
@@ -27,7 +27,7 @@
27
27
  1人目
28
28
  ```
29
29
 
30
- でここに4つおきに <div>, </div> を挿入するわけですが、方法を考えるのはコーディングというより、どちらかというと**算数と頭の体操**です。
30
+ ここに4つおきに <div>, </div> を挿入するわけですが、方法を考えるのはコーディングというより、どちらかというと**算数と頭の体操**です。
31
31
 
32
32
  まず先頭から4つおきに <div> を入れるなら、4の倍数(4n)になったときに <div> を出力すればよさそうです。つまり判定式は `$i % 4 === 0` です。また </div> は 4n-1 になったときに出力します。判定式は `$i % 4 === 3` です。ただこのままですと要素数が4の倍数ではない場合にタグが閉じられないため、最後にも閉じタグを挿入するのを忘れないでください。
33
33
 
@@ -36,7 +36,7 @@
36
36
  ```php
37
37
  <?php foreach ($records as $i => $record): ?>
38
38
  <?= $i % 4 === 0 ? '<div>'.PHP_EOL : null ?>
39
- <?= $i%4 . ':' . htmlspecialchars($record['name']).PHP_EOL ?>
39
+ <?= htmlspecialchars($record['name']).PHP_EOL ?>
40
40
  <?= $i % 4 === 3 || $i === count($records) - 1 ?'</div>'.PHP_EOL : null ?>
41
41
  <?php endforeach; ?>
42
42
  ```
@@ -44,19 +44,19 @@
44
44
  ```
45
45
  // 結果
46
46
  <div>
47
- 0:9人目
47
+ 9人目
48
- 1:8人目
48
+ 8人目
49
- 2:7人目
49
+ 7人目
50
- 3:6人目
50
+ 6人目
51
51
  </div>
52
52
  <div>
53
- 0:5人目
53
+ 5人目
54
- 1:4人目
54
+ 4人目
55
- 2:3人目
55
+ 3人目
56
- 3:2人目
56
+ 2人目
57
57
  </div>
58
58
  <div>
59
- 0:1人目
59
+ 1人目
60
60
  </div>
61
61
  ```
62
62