带有内容分组的PHP动态表
发布时间:2020-12-13 22:23:57 所属栏目:PHP教程 来源:网络整理
导读:我想做什么 我有一个看起来像这样的数组 – Array([0] = Array ( [id] = 1 [date] = 23-09-2015 [name] = Public Transport [group_id] = 1 )[1] = Array ( [id] = 2 [date] = 23-09-2015 [name] = Parking [group_id] = 1 )[2] = Array ( [id] = 4 [date] =
我想做什么
我有一个看起来像这样的数组 – Array ( [0] => Array ( [id] => 1 [date] => 23-09-2015 [name] => Public Transport [group_id] => 1 ) [1] => Array ( [id] => 2 [date] => 23-09-2015 [name] => Parking [group_id] => 1 ) [2] => Array ( [id] => 4 [date] => 23-09-2015 [name] => Food [group_id] => 2 ) [3] => Array ( [id] => 3 [date] => 23-09-2015 [name] => Fix [group_id] => 3 ) [4] => Array ( [id] => 4 [date] => 23-09-2015 [name] => Entertainment [group_id] => 3 ) ) 我想在表中列出它,根据组ID完成分组 该集团有交通运输[1],住宿[2]和津贴[3]. [4]未分组. 表结构需要如下所示. ID| Date | Name | --------------------------------- --------------------------------- 1 |23-09-2015|Public Transport 2 |23-09-2015|Parking --------------------------------- TRANSPORTATION --------------------------------- 3 |23-09-2015|Food --------------------------------- ACCOMMODATION --------------------------------- 4 |23-09-2015|Fix --------------------------------- ALLOWANCE --------------------------------- 5 |23-09-2015|Entertainment 你可以在这里看到id 1& 2个来自交通,3个住宿,4个住宿和娱乐没有团体. --------------------------------- 3 |23-09-2015|Food --------------------------------- ACCOMMODATION --------------------------------- No data available --------------------------------- ALLOWANCE --------------------------------- 我尝试了什么 <?php $j = 1; foreach ($summary as $list) { if ($j != $list['group_id']) { if ($j == 1) { $group = 'Transportation'; } else if ($j == 2) { $group = 'Accomodation'; } else if ($j == 3) { $group = 'Allowances'; } else { $group = ''; } ?> <tr class="summary-title"> <td colspan="7"><?php echo $group; ?></td> </tr> <?php } ?> <tr> <td><?php echo $list['id']; ?></td> <td><?php echo $list['date']; ?></td> <td><?php echo $list['name']; ?></td> </tr> <?php $j = $list['group_id']; } ?> 数组按group_id按升序排序.组ID将始终具有值1,2,3,4. 我的代码有问题 它部分工作.但是当group_id数组中没有值时,我无法显示NO DATA AVAILABLE.此外,如果group_id = 4在数组中不可用,那么它不会在底部设置ALLOWANCE,因为数组循环在设置值之前完成. 解决方法
编辑:删除了整个页面,因为它现在变得混乱.
$summary = array(); $summary[] = array('id'=>1,'date'=>"23-09-2915",'name'=>"Public transpor1",'group_id'=> 1); $summary[] = array('id'=>2,'date'=>"24-09-2915",'name'=>"Public transpor2",'group_id'=> 3); $summary[] = array('id'=>3,'date'=>"25-09-2915",'name'=>"Public transpor3",'group_id'=> 1); $summary[] = array('id'=>4,'date'=>"26-09-2915",'name'=>"Public transpor4",'group_id'=> 2); $summary[] = array('id'=>5,'date'=>"27-09-2915",'name'=>"Public transpor5",'group_id'=> 1); $newarray = array('Transportation'=>array(),'Accomodation'=>array(),'Allowances'=>array(),'Not found'=>array()); foreach ($summary as $list) { if(isset($list['group_id'])){ $testid = $list['group_id']; }else{ $testid = 4; } if ($testid == 1) { $group = 'Transportation'; } else if ($testid == 2) { $group = 'Accomodation'; } else if ($testid == 3) { $group = 'Allowances'; } else { $group = 'Not found'; } $newarray[$group][] = $list; } echo "<table>"; foreach($newarray as $key => $array){ echo "<tr><th>".$key."</th></tr>"; if(count($array) > 0){ foreach($array as $row){ echo "<tr><td>".$row['name']."</td></tr>"; } }else{ echo "<tr><td>Not data</td></tr>"; } } echo "</table>"; 这应该做你想要的,但是认真的,付出一些努力lol.如果您对问题不太清楚,我将不会继续编辑它,直到它完成您想要的操作 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |