присваивать значение переменной только для первой итерации цикла for - PullRequest
0 голосов
/ 19 февраля 2019

Я использую для цикла и есть некоторые проблемы.Ниже приведен пример:

<tr>
    <td class="tg-031e">3:00</td>
    <?php for ($i=0; $i < $total_staff; $i++) {
        $chk = $this->general_model->check_for_temp_color('3:00', $selected_dt);
    ?>
        <td class="tg-031e text-right availablepopup"></td>
    <?php } ?>
</tr>

Теперь, скажем, значение $chk может быть одним из следующих: 1 или 2. Если это 1, тогда присваивайте класс только для i == 1, если это 2затем назначьте класс, где i == 1 и i == 2.

Надеюсь, это понятно для понимания!

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Вы можете достичь этого следующим образом:

<tr>
    <td class="tg-031e">3:00</td>
    <?php for ($i = 0, $chk = $this->general_model->check_for_temp_color('3:00', $selected_dt); $i < $total_staff; $i++): ?>
        <td class="tg-031e text-right availablepopup <?php if (($chk == 1 && $i == 0) || ($chk == 2 && $i != 0)): echo 'your-class'; endif; ?>"></td>
    <?php endfor; ?>
</tr>

Где your-class - это нужный вам класс.

0 голосов
/ 19 февраля 2019

Вы могли бы просто сделать это:

for ($i=0; $i < $total_staff; $i++) { 
     if ($i==1)
     {
         $chk = 1;
         echo '<td class="tg-031e text-right availablepopup"></td>';
     }
     else
     {
         $chk = 2;
         echo 'something else';
     }
}

Я думаю, вы просто хотите, чтобы $ chk было 1, если $ i = 1, верно?Если вы действительно хотите, чтобы это был первый экземпляр, тогда вместо этого должно быть if ($ i == 0).

И, конечно, вам нужно будет добавить обратно весь ваш код.Было трудно правильно отформатировать его в этом поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...