Справка по циклу PHP foreach - PullRequest
0 голосов
/ 20 марта 2010

Я работаю с циклом PHP foreach, и мне нужно, чтобы он выводил какой-то конкретный HTML в зависимости от того, какое значение массива он выбрасывает.

Каждый раз, когда цикл foreach достигает значения $content['contentTitle'], мне нужно вставить новую таблицу, а затем продолжить. По сути, я хочу, чтобы цикл for выплевывал новую таблицу каждый раз, когда был найден новый contentTitle, но затем добавлял остальные данные в массив как tr и td.

Ответы [ 3 ]

5 голосов
/ 20 марта 2010

Ну, добавьте условие if внутри вашего цикла. Если он достигнет $ content ['contentTitle'], закройте предыдущую таблицу и начните новую.

3 голосов
/ 21 марта 2010

Предполагая, что $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;
   }
}
0 голосов
/ 20 марта 2010
foreach($content as $key=>$value){
  if($key == "contentTitle"){
    echo "<table>";
  }
  else{
    echo "<tr><td>";
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...