Помогите написать правильно условие count($a || $b)?

seth23

Создатель
Регистрация
24 Мар 2017
Сообщения
17
Реакции
1
Здравствуйте. Помогите пожалуйста разобраться, не могу понять как правильно сделать проверку.

Есть условие <?php if (count($images) > 1). В данное условие необходимо добавить также проверку $video. То есть должно получиться что-то <?php if (count($images || $video) > 1) - только оно не работает, как правильно это организовать?
 
PHP:
if (count($images) > 1 || count($video) > 1) {

}

Спасибо за ответ, но для меня это не сработало. Может взгляните на полный фрагмент кода?
Код:
<?php if (count($images) > 1 || count($video) > 1) { ?>
              <div class="image-additional" id="image-additional">
                <div class="thumbnails all-carousel">
                  <?php $data_index = 0; foreach ($images as $image) { ?>
                  <img src="2.png" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" class="img-responsive" /></a>
                  <?php $data_index++; } ?>

                      <?php if ($video) { ?>
                      <img src="1.mp4" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" class="img-responsive" /></a>
                      <?php } ?>   
       
                </div>
              </div>
            <?php } ?>
Может проблема кроется во второй проверке: <?php if ($video) { ?>? По отдельности все прекрасно работает.
 
Вы можете написать какая именно логика Вам нужна? Какое условие? Непонятно что желаете получить.

Сейчас у Вас так:
Код:
Если count($images) > 1 и count($video) > 1
Если только count($video) > 1
Если только count($images) > 1
, то выводится хтмл код.
При этом, если $video == TRUE, то выводится условие. Иначе, игнорируется.

Я так пониманию, что у Вас должны 2 условия выполняться сразу. Тогда видимо так
PHP:
if (count($images) > 1 && count($video) > 1)
 
ошибки в коде нет, что именно понимается под "неработает"

Вы можете написать какая именно логика Вам нужна? Какое условие? Непонятно что желаете получить.

Я не силен в программировании, только начинаю. У меня есть карусель изображений, она отображается если есть >1 прикрепленных изображений (При условии if (count($images) > 1) работает корректно), также у меня есть функция которая выводит видео если оно есть (if ($video) {). Но карусель отображается только при 1 и больше прикрепленных изображений, при этом не учитывает, есть ли прикрепленное видео или нет. Мне нужно проверять на наличие изображения и видео, если есть что-то одно из двух вывести данный блок.

Я так пониманию, что у Вас должны 2 условия выполняться сразу. Тогда видимо так
Да все верно, но по непонятным мне причинам не работает.
 
Попробуйте так
PHP:
<?php if ($images or $video) { ?>
  <div class="image-additional" id="image-additional">
  <div class="thumbnails all-carousel">
  <?php
  if ($images) {
  $data_index = 0;
  foreach ($images as $image) { ?>
  <img src="2.png" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" class="img-responsive" /></a>
  <?php
  $data_index++;
  }
  }
  if ($video) { ?>
  <img src="1.mp4" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" class="img-responsive" /></a>
  <?php
  } ?>  
  </div>
  </div>
<?php
} ?>
 
Попробуйте так
Да оно так работает, но мне нужно обязательно чтобы все выводилось только при условии что есть видео или изображения, то есть главное чтобы что-то было >1 только тогда выводить html в другому случаи не выводить.
 
Да оно так работает, но мне нужно обязательно чтобы все выводилось только при условии что есть видео или изображения, то есть главное чтобы что-то было >1 только тогда выводить html в другому случаи не выводить.
Так код выше так и делает.
 
Так код выше так и делает.
Поправочка, условие корректно отрабатывает если >1 изображений и есть одно видео.

Написал вот так все корректно заработало:
Код:
<?php if (count($images) > 1 || $video) { ?>
 
Последнее редактирование:
Так может надо больше одного или равно одному?

(count($images) > 1 - вот здесь правильно отображать если больше 1, а видео всегда будет только 1 ролик из за этого просто проверяем есть ли видео лили нет.

Я так понимаю так будет правильно или нет? В данном примере все работает корректно.
Код:
<?php if (count($images) > 1 || $video) { ?>
 
Тут логика что больше одного это два.
Если картинка одна ее не нарисуют.

С картинкой я разобрался и все тут понятно, а вот с видео, будет ли правильно с точки зрения правильности написания кода и логики или нужно будет для видео указать count($video) >= 1? Так как видео у меня всегда одно я могу просто оставить $video или по правильном будет все же добавить count($video) >= 1?
 
Назад
Сверху