2010-03-20 128 views
-5

我正在使用PHP foreach循環,我需要它輸出一些特定的HTML,具體取決於它正在吐出哪個數組值。PHP foreach循環幫助

每當foreach循環遇到$content['contentTitle']我需要它插入一個新表,然後從那裏繼續。實質上,我希望循環在每次找到新的contentTitle時吐出一個新表,但隨後將數組中的其餘數據添加爲trtd's。

+3

你能請重寫你的問題?這完全是不可理解的。還請提供一些代碼或至少預期的輸入/輸出。 – Crozin 2010-03-20 13:05:38

+1

*(提示)*沒有'array_spit()'和交替修飾不是可選的。 – Gordon 2010-03-20 13:51:07

+0

-1,因爲你可以從你的問題中唯一可以看出你正在使用基於表格的佈局。學習編寫HTML,__then__學會編寫PHP。 – aaronasterling 2010-08-11 10:24:34

回答

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; 
    } 
} 
5

好吧,在你的循環內添加一個if條件。如果它擊中$ content ['contentTitle'],則關閉上一個表並開始一個新表。

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