2016-08-28 5 views
0

私は数日間このことを理解しようとしていましたが、残念ながらこれまで運がありませんでした。私は、カテゴリ/タイプに基づいて予定を並べ替えて別々の部門に分けたいと思っています。たとえば:foreach出力に基づく別のマークアップ

私のforeachループは、入力「ノーマル」タイプの利用可能な各予定のチェックボックスと「特別」を生成します。

今、私はすべての予定のリストを取得することができます。

  • 30-08-16 11時05分:

    print $apptOutput; 
    

    これは、ユーザーがチェックボックスを使用して選択することができます予定のリストを出力特別

  • 31-08-16午前9時55分の特別
  • 31-08-16 20:05通常
  • 01-09-16 20時通常
  • 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> 

答えて

2

あなたは簡単にそれがすでにHTMLを生成します場合は、$appOutputを持っていることの段階で問題を解決することはできません。 を生成している時点で解決する必要があります。なぜなら、特別なであり、どれが普通のであるかを識別することが容易になるからです。

このデータをデータベースから取得したとします。データベースから結果セットをトラバースする時点で、各アイテムをの特殊記号の標準であるに基づいて異なる配列キーに配置することができます。それ自身の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> 
+0

これは完全に機能しました。しかし、テンプレートファイルでもforeachは必要ではありませんでした。ありがとうございました。 – nerdrocker

関連する問題