bemdev
@bemdev

Как правильно поставить условия? или как определить последнюю итерацию switch по установленному условию?

function showAuto($trigger, $base, $auto) 
{

  $limit = $trigger - 1;
  $number = count($base['autos'][0]);

  echo "<div class='autocatalog__item'>";
  for ($d=0; $d < $number; $d++) {
    $a = $number - 2;
    if($d != $a and $auto[$d] != false) {
      echo "<div class='autocatalog__text'>$auto[$d]</div>";
    }  
  }
  echo "</div>";
  echo $limit;
  for ($i=0; $i < $trigger; $i++) {
    echo $limit;
    if($i==$limit){
      echo '</div>';
      echo "IAM LAST ITEM";
    }
  }

}

<? foreach ($base['autos'] as $auto) {
        $model = $auto[2];
        switch ($model) {
          case 'H7 ':
            if($trigger[$model] == false){
              echo "<div class='autocatalog__group'><h2>$model</h2>";
              echo "<div class='autocatalog__headers'>";
              foreach ($base['headers'] as $header) {
                echo "<h5>$header</h5>";
              }
              echo "</div>";
            }
            $trigger[$model]++;
            showAuto($trigger[$model], $base, $auto);

            break;
          default:
            break;
        }
      } ?>


Не пойму в чем проблема. Свитчем перебираю авто в массиве если есть и первый делаю группу и закрываю по тригеру в функции вроде как но почему то не закрываю) может кто то видит в чем тут дело :(

или как определить последнюю итерацию switch по установленному условию ?

подскажите пожалуйста буду очень рад :)
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
bemdev
@bemdev Автор вопроса
foreach ($base['autos'] as $auto) {
        $model = $auto[2];
        switch ($model) {
          case 'Р7':
            if($trigger[$model] == false){
              echo "<div class='autocatalog__group'><h2>$model</h2>";
              echo "<div class='autocatalog__headers'>";
              foreach ($base['headers'] as $header) {
                echo "<h5>$header</h5>";
              }
              echo "</div>";
            }
            $trigger[$model]++;
            showAuto($auto);

            $arr = [];
            foreach($base['autos'] as $item) {
              if($item[2] == $auto[2]) {
                array_push($arr, $item);
              }    
            }
            if(count($arr) == $trigger[$model]) {
              echo "</div>";
            }

            break;
          default:
            break;
        }
      }


решил только еще одним обходом массива
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Fortop
Tech/Team lead
Для начала выведите тут
echo $limit;
for ($i=0; $i < $trigger; $i++) {
    echo $limit;


не $limit, который выводится выше "до" цикла, а $i

Как минимум вы увидите на каком этапе у вас заканчивается ваш внутренний цикл
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект