PHP foreach循环帮助

时间:2010-03-20 13:00:34

标签: php loops foreach

我正在使用PHP foreach循环,我需要它来输出一些特定的HTML,具体取决于它吐出的数组值。

每次foreach循环命中$content['contentTitle']时,我都需要插入一个新表,然后从那里继续。基本上我希望循环在每次找到新的contentTitle时吐出一个新表,但是然后将数据中的其余数据添加为trtd

3 个答案:

答案 0 :(得分:5)

好吧,在循环中添加if条件。如果它遇到$ content ['contentTitle'],则关闭上一个表并开始一个新表。

答案 1 :(得分:3)

假设$content是某个父数组的元素,并且该父数组中的第一个条目确实有contentTitle条目,那么你可以这样做:

$first = true;
echo "<table>\n"; // start initial table
foreach ($stuff as $content) {
    if ($content['contentTitle']) {
        if (!$first) {
           // If this is NOT the $first run through, close the previous table
           $first = false; //... and set the sentinel to false
           echo "</table>\n";
        }
        // output the contentTitle
        echo <<<EOF
<h1>{$content['contentTitle']}</h1>

<table>

EOF;
    } else {
        // otherwise output the regular non-title content
        echo <<<EOF
<tr>
    <td>{$content['this']}</td>
    <td>{$content['that']}</td>
    <td>{$content['somethingelse']}</td>
</tr>

EOF;
   }
}

答案 2 :(得分:0)

foreach($content as $key=>$value){
  if($key == "contentTitle"){
    echo "<table>";
  }
  else{
    echo "<tr><td>";
  }
}