前提・実現したいこと
お世話になっております。
phpで生成した多次元配列をrowspanを使ったtableタグへ出力する際にうまく表示できず困っております。
自分なりに色々試したのですが理想の形になりませんでした。原因はループした際のtrタグがおかしくif等で条件で挿入していくべきとは思うのですがどのように処理するべきか詰まってしまったのでお手数ですがアドアバイスをいただけますと幸いです。よろしくお願いいたします!
該当のソースコード
php
1$user_array = [ 2 1 => [ 3 1 => [ 4 'name' => 'ユーザー1', 5 'email' => 'example@example.com', 6 'age' => 17, 7 ], 8 2 => [ 9 'name' => 'ユーザー2', 10 'email' => 'example@example.com', 11 'age' => 18, 12 ], 13 3 => [ 14 'name' => 'ユーザー3', 15 'email' => 'example@example.com', 16 'age' => 17, 17 ], 18 4 => [ 19 'name' => 'ユーザー4', 20 'email' => 'example@example.com', 21 'age' => 16, 22 ], 23 ], 24 2 => [ 25 5 => [ 26 'name' => 'ユーザー5', 27 'email' => 'example@example.com', 28 'age' => 14, 29 ], 30 6 => [ 31 'name' => 'ユーザー6', 32 'email' => 'example@example.com', 33 'age' => 15, 34 ], 35 7 => [ 36 'name' => 'ユーザー7', 37 'email' => 'example@example.com', 38 'age' => 14, 39 ], 40 8 => [ 41 'name' => 'ユーザー8', 42 'email' => 'example@example.com', 43 'age' => 12, 44 ], 45 ] 46]; 47 48$count = 4;
php
1<table> 2 <thead> 3 <tr> 4 <th>グループID</th> 5 <th>ユーザーID</th> 6 <th>ユーザー名</th> 7 <th>メールアドレス</th> 8 <th>年齢</th> 9 <th>編集</th> 10 <th>削除</th> 11 </tr> 12 </thead> 13 <tbody> 14 <?php $i = 1; ?> 15 <?php foreach ($user_array as $user_group_id => $user_data): ?> 16 <tr> 17 <td rowspan="<?= $count; ?>"><?= $user_group_id; ?></td> 18 <?php foreach ($user_data as $user_id => $data): ?> 19 <td><?= $user_id ?></td> 20 <td><?= $data['name']; ?></td> 21 <td><?= $data['email']; ?></td> 22 <td><?= $data['age']; ?></td> 23 <td><?= $data['favorite']; ?></td> 24 <?php endforeach; ?> 25 <td rowspan="<?= $count; ?>"><a href="edit.php">編集</a></td> 26 <td rowspan="<?= $count; ?>"><a href="delete.php">削除</a></td> 27 </tr> 28 <?php if ($i > 1): ?> 29 <tr> 30 <?php foreach ($user_data as $user_id => $data ): ?> 31 <td><?= $user_id ?></td> 32 <td><?= $data['name']; ?></td> 33 <td><?= $data['email']; ?></td> 34 <td><?= $data['age']; ?></td> 35 <td><?= $data['favorite']; ?></td> 36 <?php endforeach; ?> 37 </tr> 38 <?php endif; ?> 39 <?php $i++ ?> 40 <?php endforeach; ?> 41 </tbody> 42</table> 43
補足情報(FW/ツールのバージョンなど)
PHP 5.6
追記
実現したいtableのモックのソース
html
1<table> 2 <thead> 3 <tr> 4 <th>ユーザーグループID</th> 5 <th>ユーザーID</th> 6 <th>ユーザー名</th> 7 <th>メールアドレス</th> 8 <th>年齢</th> 9 <th>編集</th> 10 <th>削除</th> 11 </tr> 12 </thead> 13 <tbody> 14 <tr> 15 <td rowspan="4">1</td> 16 <td>1</td> 17 <td>ユーザー1</td> 18 <td>example1@example.com</td> 19 <td>17</td> 20 <td rowspan="4"><a href="edit.php">編集</a></td> 21 <td rowspan="4"><a href="delete.php">削除</a></td> 22 </tr> 23 <tr> 24 <td>2</td> 25 <td>ユーザー2</td> 26 <td>example1@example.com</td> 27 <td>18</td> 28 </tr> 29 <tr> 30 <td>3</td> 31 <td>ユーザー3</td> 32 <td>example1@example.com</td> 33 <td>17</td> 34 </tr> 35 <tr> 36 <td>4</td> 37 <td>ユーザー4</td> 38 <td>example1@example.com</td> 39 <td>16</td> 40 </tr> 41 <tr> 42 <td rowspan="4">2</td> 43 <td>5</td> 44 <td>ユーザー5</td> 45 <td>example2@example.com</td> 46 <td>14</td> 47 <td rowspan="4"><a href="edit.php">編集</a></td> 48 <td rowspan="4"><a href="delete.php">削除</a></td> 49 </tr> 50 <tr> 51 <td>6</td> 52 <td>ユーザー6</td> 53 <td>example1@example.com</td> 54 <td>15</td> 55 </tr> 56 <tr> 57 <td>7</td> 58 <td>ユーザー7</td> 59 <td>example1@example.com</td> 60 <td>14</td> 61 </tr> 62 <tr> 63 <td>8</td> 64 <td>ユーザー8</td> 65 <td>example1@example.com</td> 66 <td>13</td> 67 </tr> 68 </tbody> 69</table>
回答1件
あなたの回答
tips
プレビュー