'; $tablePl" />

Оберните каждые 3 divs в PHP

php html arrays wrap

11 просмотра

1 ответ

Я пытаюсь обернуть каждые 3 div из разных массивов:

$tablePlagues = '';
$tablePlaguesSupport = ''; 

foreach($result as $key => $value){
  $container = '';
  foreach($plagues as $plague){
     $tablePlagues .= '<div class="col-lg-4">';
     $tablePlagues .= '<table>;
     $tablePlagues .= '<tr>;
     $tablePlagues .= '<td>'.$plague.'</td>;
     $tablePlagues .= '<td>'.$value['data'].'</td>;
     $tablePlagues .= '<tr>;
     $tablePlagues .= '</table>;
     $tablePlagues .= '</div>;
  }

  foreach($plaguesSupport as $plagues){
     $tablePlaguesSupport .= '<div class="col-lg-4">';
     $tablePlaguesSupport .= '<table>;
     $tablePlaguesSupport .= '<tr>;
     $tablePlaguesSupport .= '<td>'.$plagues.'</td>;
     $tablePlaguesSupport .= '<td>'.$value['data'].'</td>;
     $tablePlaguesSupport .= '<tr>;
     $tablePlaguesSupport .= '</table>;
     $tablePlaguesSupport .= '</div>;
  }

  $container .= $tablePlagues;
  $conainer  .= tablePlaguesSupport;

}

Это дает мне следующий результат:

<div class="col-lg-4">
  <table>
    <tr>
      <td>ACAROS</td>
      <td>10</td>
    </tr>
  </table>
</div>
<div class="col-lg-4">
  <table>
    <tr>
      <td>ACAROS</td>
      <td>10</td>
    </tr>
  </table>
</div>
<div class="col-lg-4">
  <table>
    <tr>
      <td>BOTRI</td>
      <td>5</td>
    </tr>
  </table>
</div>
<div class="col-lg-4">
  <table>
    <tr>
      <td>MOSCA</td>
      <td>11</td>
    </tr>
  </table>
</div>
<div class="col-lg-4">
  <table>
    <tr>
      <td>BACT</td>
      <td>13</td>
    </tr>
  </table>
</div>

Но я хочу обернуть каждые 3 div внутри другого div классом «col-lg-12» следующим образом:

    <div class="col-lg-12">
    <div class="col-lg-4">
      <table>
        <tr>
          <td>ACAROS</td>
          <td>10</td>
        </tr>
      </table>
    </div>
    <div class="col-lg-4">
      <table>
        <tr>
          <td>ACAROS</td>
          <td>10</td>
        </tr>
      </table>
    </div>
    <div class="col-lg-4">
      <table>
        <tr>
          <td>BOTRI</td>
          <td>5</td>
        </tr>
      </table>
    </div>
    </div>
   <div class="col-lg-12">
    <div class="col-lg-4">
      <table>
        <tr>
          <td>MOSCA</td>
          <td>11</td>
        </tr>
      </table>
    </div>
    <div class="col-lg-4">
      <table>
        <tr>
          <td>BACT</td>
          <td>13</td>
        </tr>
      </table>
    </div>
</div>

Я попытался сделать что-то вроде этого:

$tablePlagues = '';
    $tablePlaguesSupport = ''; 
    $count = 0;
    foreach($result as $key => $value){
      $container = '';

if($count % 3 == 0){
  $container .= '<div class="col-lg-12">';
}
      foreach($plagues as $plague){
         $tablePlagues .= '<div class="col-lg-4">';
         $tablePlagues .= '<table>;
         $tablePlagues .= '<tr>;
         $tablePlagues .= '<td>'.$plague.'</td>;
         $tablePlagues .= '<td>'.$value['data'].'</td>;
         $tablePlagues .= '<tr>;
         $tablePlagues .= '</table>;
         $tablePlagues .= '</div>;
        $count++;
      }

      foreach($plaguesSupport as $plagues){
         $tablePlaguesSupport .= '<div class="col-lg-4">';
         $tablePlaguesSupport .= '<table>;
         $tablePlaguesSupport .= '<tr>;
         $tablePlaguesSupport .= '<td>'.$plagues.'</td>;
         $tablePlaguesSupport .= '<td>'.$value['data'].'</td>;
         $tablePlaguesSupport .= '<tr>;
         $tablePlaguesSupport .= '</table>;
         $tablePlaguesSupport .= '</div>;

         $count++;
      }

      $container .= $tablePlagues;
      $conainer  .= tablePlaguesSupport;

      if($count % 3 == 0){
        $container .= '</div>';
      }

    }

Но это не работает для меня, я думаю, что это плохо работает из-за того, как я делаю счетчик. Надеюсь, вы можете помочь мне немного разобраться в обработке div в PHP

Автор: Fabian Sierra Источник Размещён: 17.05.2019 03:42

Ответы (1)


0 плюса

countи $container = ''; //initializationдолжен быть вне вашего внутреннего цикла, а внутренняя переменная таблицы должна быть внутри. что-то вроде этого:

$count = 0;
$container = '';

foreach($result as $key => $value){

    if($count % 3 == 0){
      $container .= '<div class="col-lg-12">';
    }

    $tablePlagues = '';
    foreach($plagues as $plague){
     $tablePlagues .= '<div class="col-lg-4">';
     $tablePlagues .= '<table>';
     $tablePlagues .= '<tr>';
     $tablePlagues .= '<td>'.$plague.'</td>';
     $tablePlagues .= '<td>'.$value['data'].'</td>';
     $tablePlagues .= '<tr>';
     $tablePlagues .= '</table>';
     $tablePlagues .= '</div>';
    }

    $tablePlaguesSupport = '';
    foreach($plaguesSupport as $plagues){
     $tablePlaguesSupport .= '<div class="col-lg-4">';
     $tablePlaguesSupport .= '<table>';
     $tablePlaguesSupport .= '<tr>';
     $tablePlaguesSupport .= '<td>'.$plagues.'</td>';
     $tablePlaguesSupport .= '<td>'.$value['data'].'</td>';
     $tablePlaguesSupport .= '<tr>';
     $tablePlaguesSupport .= '</table>';
     $tablePlaguesSupport .= '</div>';
    }

    $container .= $tablePlagues;
    $conainer  .= $tablePlaguesSupport;

    if($count % 3 == 0){
        $container .= '</div>';
    }

    $count++;
}
Автор: ACD Размещён: 15.11.2018 03:44
Вопросы из категории :
32x32