【发布时间】:2015-03-11 03:11:54
【问题描述】:
我正在尝试按日期对来自 foreach 语句的生成数据进行分组。我正在使用 Kirby CMS,但在完成以下任务时遇到了麻烦。
目标(sudo):
date: 03/10/15
Take Over
date: 03/09/15
Video
Flash
Super GIF 2
Super GIF
Image
我的尝试:
date: 03/10/15
Take Over
date: 03/09/15
Video
date: 03/09/15
Flash
date: 03/09/15
Super GIF 2
date: 03/09/15
Super GIF
date: 03/09/15
Image
代码:
<ul>
<?php foreach($page->children()->visible()->sortBy('modified', 'desc') as $projects): ?>
<li>
date: <?php echo $projects->modified('m/d/y') ?> <br>
<a href="<?php echo $projects->url() ?>"><?php echo $projects->title()->html() ?></a>
</li>
<?php endforeach ?>
</ul>
第二次尝试失败:
<ul>
<?php foreach($page->children()->visible()->sortBy('modified', 'desc') as $projects): ?>
<li>
<?php foreach($page->children()->visible()->sortBy('modified', 'desc') as $project): ?>
<?php
if($projects->modified('m/d/y') == $project->modified('m/d/y')) {
echo $project->modified('m/d/y') . '<br>' . $project->title();
}
?>
<?php endforeach ?>
</li>
<?php endforeach ?>
</ul>
输出:
03/10/15
Take Over
03/09/15
Video 03/09/15
Flash 03/09/15
Super GIF 2 03/09/15
Super GIF 03/09/15
Image
03/09/15
Video 03/09/15
Flash 03/09/15
Super GIF 2 03/09/15
Super GIF 03/09/15
Image
03/09/15
Video 03/09/15
Flash 03/09/15
Super GIF 2 03/09/15
Super GIF 03/09/15
Image
03/09/15
Video 03/09/15
Flash 03/09/15
Super GIF 2 03/09/15
Super GIF 03/09/15
Image
03/09/15
Video 03/09/15
Flash 03/09/15
Super GIF 2 03/09/15
Super GIF 03/09/15
Image
【问题讨论】:
-
我认为你需要一个嵌套的 foreach 循环。你试过这种方法吗?
-
您只需要跟踪当前日期以及它与上一个日期相比的变化时间。只需使用 if 来检查和回显。
-
更新了我的尝试 2,它更好,但它不应该重复 03/09/15 那么多次。只显示一次。
标签: php for-loop foreach kirby