我正在使用PHP foreach循环,我需要它来输出一些特定的HTML,具体取决于它吐出的数组值。
每次foreach循环命中$content['contentTitle']
时,我都需要插入一个新表,然后从那里继续。基本上我希望循环在每次找到新的contentTitle时吐出一个新表,但是然后将数据中的其余数据添加为tr
和td
。
答案 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>";
}
}