php - 嵌套的 foreach 循环不拆分 Laravel 中的集合数据
问题描述
我在数据库中有两个字段,名为“事件日期”和“事件描述”。它存储一组日期和描述的集合。
现在,我想在时间轴上显示它们,每个描述都应该显示在它的日期前面。
例如,第一个日期必须只有事件 1。第二个日期必须只有事件 2,依此类推。但我没有得到想要的输出。我的日期显示正确,但描述看起来不像应该的那样。
看
如何为每个日期输出单个描述?
刀
<div class="expanded-list">
<div id="faq6" class="collapse" data-parent=".faq-list">
@php
$events = explode (",", $row->get_event_dates);
$details = explode (",", $row->get_event_descriptions);
@endphp
<div class="col-md-6">
<div class="main-card mb-3 card">
<div class="card-body">
@foreach ($events as $key => $val)
<div class="vertical-timeline-item vertical-timeline-element">
<div class="vertical-timeline-element-content bounce-in">
@foreach ($details as $key => $detail)
<p>{{ $detail }}</p>
@endforeach
<span class="vertical-timeline-element-date">{{ $val }}</span>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
解决方案
您的第二个 foreach 循环正在迭代第一个 foreach 的每个循环。并打印第一个循环的每个项目的每个值。你不需要第二个 foreach 循环。假设两个数组的长度相同。所以只需循环一次并使用 key 获取第二个数组的值。
@foreach ($events as $key => $val)
<div class="vertical-timeline-item vertical-timeline-element">
<div class="vertical-timeline-element-content bounce-in">
<p>{{ $details[$key] }}</p>
<span class="vertical-timeline-element-date">{{ $va l}}</span>
</div>
</div>
@endforeach
如果两个数组的长度不一样,你可以检查数组索引
@if (isset($details[$key]))
<p>{{ $details[$key] }}</p>
@else
<p>--</p>
@endif
推荐阅读
- r - 在 Shiny 模块中插入默认 UI 行
- node.js - 如何将 connect-session-sequelize 会话存储指向所需的数据库模式
- c# - 在 Singleton 中获取 AspNetCore.SinalR HubInstance (IHubContext)
- python - Tensorboard ValueError 前缀 E 没有被识别的文件系统
- proxy - 为什么 Azure CLI 登录失败?“连接主动拒绝”
- django - Django Slugfield 如何处理下划线和连字符的唯一性?
- c# - 如何将循环用户输入从一个类方法调用到另一个类方法?
- javascript - 不和谐机器人随机生成报价
- java - 与管理员绑定后使用 LDAP 对用户进行身份验证?
- amazon-web-services - AWS CloudFront 签名的 cookie + S3 适用于 REST 客户端应用程序,但不适用于浏览器