Php 基于数组数据动态生成手风琴
我正在读取mysql,以便在给定特定ID的情况下提取一组数据,这将向我的脚本返回一个数组。这很简单。下面是一个示例,它存储在一个名为$history的数组中Php 基于数组数据动态生成手风琴,php,arrays,dynamic,bootstrap-4,accordion,Php,Arrays,Dynamic,Bootstrap 4,Accordion,我正在读取mysql,以便在给定特定ID的情况下提取一组数据,这将向我的脚本返回一个数组。这很简单。下面是一个示例,它存储在一个名为$history的数组中 Array ( [serviceID] => 1 [VesselTag] => 1000001 [component] => Engine 1 [item] => Caterpillar [serial] => 123456 [comment] => Something in here like this
Array ( [serviceID] => 1 [VesselTag] => 1000001 [component] => Engine 1 [item] => Caterpillar [serial] => 123456 [comment] => Something in here like this [parts] => Oil [lat] => 50.38313740 [longitude] => -4.03461360 [engineer] => 27 [date] => 2019-05-30 19:25:56 )
Array ( [serviceID] => 2 [VesselTag] => 1000001 [component] => Engine 2 [item] => Caterpillar [serial] => 677889 [comment] => Did a full overhaul of top section replaced everything [parts] => everything [lat] => 50.38309180 [longitude] => -4.03468820 [engineer] => 27 [date] => 2019-05-30 19:27:29 )
Array ( [serviceID] => 3 [VesselTag] => 1000001 [component] => Engine 1 [item] => Caterpillar [serial] => 123456 [comment] => This seems quite usable [parts] => Oil [lat] => 50.38345892 [longitude] => -4.03475649 [engineer] => 27 [date] => 2019-05-30 19:29:23 )
我现在要做的是根据列表中的[component]生成一个手风琴“卡体”,对卡进行分组。有时,阵列可能会有更多或更少,因此将有0到7张卡[组件]显示
<div class="card">
<div class="card-header">
<a class="card-link" data-toggle="collapse" href="#collapseOne">
$array[Component] **<--- Guessing this would be from a ```foreach``` or ```while``` loop???**
</a>
</div>
<div id="collapseOne" class="collapse" data-parent="#accordion">
<div class="card-body">
<?php **THIS IS WHERE I WILL DISPLAY THE ROWS OF DATA ASSOCIATED TO THE [component] IN QUESTION ?>**
</div>
</div>
</div>
$array[Component]**在看了很多不同的文章之后,我似乎找到了一些有效的方法。。。。。
我认为这是相对有效的,但很高兴有人告诉我其他的
<div id="accordion">
<?php $newArray=array();
foreach($history as $val){
$key=$val['component'];
$grouped[$key][]=$val;
}
foreach($grouped as $group){?>
<div class="card">
<div class="card-header">
<a class="card-link" data-toggle="collapse" href="#<?php echo str_replace(' ', '',$group[0]['component']); ?>">
<?php echo $group[0]['component']; ?>
</a>
</div>
<div id="<?php echo str_replace(' ', '',$group[0]['component']); ?>" class="collapse" data-parent="#accordion">
<div class="card-body">
<?php foreach ($group as $occurance){
echo $occurance['date'] . ' - ' . $occurance['comment'] . ' - ' . $occurance['parts'] . ' - ' . $occurance['engineer'];
echo '<br>';
} ?>
</div>
</div>
</div>
<?php }?>
</div>
我可能应该补充一点,我正在尝试在不大量调用数据库的情况下执行此操作。。。想法是提取特定“VesselID”的所有历史,然后根据这些记录中的组件生成手风琴。然后,每个手风琴都会列出特定手风琴[组件]的记录。试试看,这一个应该可以用手风琴div包装卡片