我正在尝试动态创建代表一周中 5 天的 5 个 div。在每个 div 中,我试图遍历从我的代码点火器模型中获取的数据,并根据与该项目相关的项目、日期和任务回显一系列无序列表。我正在从我的项目表中获取数据,以在 h4 标签中回显项目名称,并从任务表中获取数据,以回显项目 h4 下的相关任务。我遇到的问题是我似乎无法找到一种方法来防止我的算法重复项目名称和相关任务。换句话说,如果有两个任务与一个项目相关,则该项目和两个相关任务将被回显两次。这是帮助解释问题的图像:
<?php for($counter = 0; $counter < 5; $counter++): ?><!-- loops through and creates divs -->
<?php
$date = date("F j, Y");
$refDate = date("Y-m-d");
$counterForLi = 0;
?>
<div class="span2 check-list date-container">
<div id="form-to-date">
<div class="replace">
<h2 class="day"></h2>
<h4 class="thedate">
<?php
if ($counter > 0) {
$tomorrow = mktime(0, 0, 0, date("m"), date("d")+$counter, date("y"));
$refDate = date("Y-m-d", $tomorrow);
$date = date("F j, Y", $tomorrow);
echo $date;
} else {
echo $date;
}
?>
</h4>
<input type="hidden" name="thedate" class="hidden-date" value="<?php echo $refDate; ?>">
<?php if(isset($tasks)) : foreach($tasks as $taskRow) :?> <!-- loop through the tasks -->
<?php if($taskRow->dateadded == $refDate) : ?> <!-- in the context of the right date -->
<?php if(isset($taskRow->_project_fk)) : ?>
<?php
$relatedProjectId = $taskRow->_project_fk;
$relatedProjectName = NULL;
if(!isset($relatedProjectName)) {
foreach ($projects as $ProjectRow) {
if ($ProjectRow->__project_pk == $relatedProjectId) {
$relatedProjectName = $ProjectRow->project_name;
echo "<h4>" . $relatedProjectName . "</h4>";
echo "<ul>";
}
}
foreach ($tasks as $task) {
if ($task->_project_fk == $relatedProjectId && $task->dateadded == $refDate) {
echo "<li>".$task->task_name."</li>";
}
}
echo "</ul>";
}
?>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
</ul>
</div><!-- /replace -->
</div><!-- /form-to-date -->
</div>
<?php endfor; ?>
我意识到这段代码有点乱,所以如果你需要澄清,请询问。
编辑:这是我的任务数组的结构