基于foreach输出的不同标记

时间:2016-08-28 12:56:24

标签: php foreach checkboxlist

我一直试图弄清楚这一天,但不幸的是到目前为止没有运气。我想根据类别/类型对约会进行排序,并将它们放在单独的div中。例如:

我的foreach循环为“正常”和“特殊”类型的每个可用约会生成一个输入复选框。

现在我可以通过以下方式获取所有约会的列表:

print $apptOutput;

这将输出用户可以使用复选框选择的约会列表:

  • 30-08-16 11:05特别
  • 31-08-16 09:55特别
  • 31-08-16 20:05正常
  • 01-09-16 20:00正常
  • 02-09-16 20:05正常

我要做的是给每个类别一个不同的div,以便输出分开。例如,我希望它是这样的:

<div id="normal">
  <label for="normal">Normal</label>
    <?php print $apptOutput; ?>
</div>

特别:

<div id="special">
  <label for="special">Special</label>
     <?php print $apptOutput; ?>
 </div>

1 个答案:

答案 0 :(得分:2)

如果您已经生成了HTML $appOutput,则无法轻松解决问题。您需要在生成$appOutput时解决此问题,因为这样可以更轻松地识别特殊哪些内容正常< / em>的

我们假设您从数据库中获取此数据。在您从数据库中遍历结果集时,可以根据 Special Normal 的条件将每个项目放在不同的数组键中,更容易将每种类型的项目的输出生成到它自己的div中。

$data = [
    "Special" => [],
    "Normal"  => [],
];
// $resultSet being your database result set or however you get the data
foreach($resulSet as $result) {
    if ($result["type"] == "Special") {
        $data["Normal"][] = $result;
    } elseif ($result["type"] == "Normal") {
        $data["Special"][] = $result;
    }
}

现在,您可以在模板中更轻松地生成结果。

<div id="normal">
    <?php foreach($data["Nomral"] as $item) { ?>
        <label for="normal"><?=$item['name']?></label>
        <input type="checkbox" ...>
    <?php } ?>
</div>

<div id="special">
    <?php foreach($data["Special"] as $item) { ?>
        <label for="normal"><?=$item['name']?></label>
        <input type="checkbox" ...>
    <?php } ?>
</div>