Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于数组数据动态生成手风琴_Php_Arrays_Dynamic_Bootstrap 4_Accordion - Fatal编程技术网

Php 基于数组数据动态生成手风琴

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

我正在读取mysql,以便在给定特定ID的情况下提取一组数据,这将向我的脚本返回一个数组。这很简单。下面是一个示例,它存储在一个名为$history的数组中

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包装卡片