Задать вопрос
@AndreyBLG

Как составить цикл php?

Приветствую!

Подскажите пожалуйста, как составить цикл, который проверяет есть ли в массиве ключи от "mod1" до "mod5"?
И если находит, то для каждого ключа выводит разметку.

Вот пример, здесь проверка только одного ключа "mod1", такой ключ есть, соответственно выводится разметка li.
Можно конечно все пять раз проверять, но это же косяк)
Подскажите как это сделать в цикле?

Спасибо!

<?php
	$all_fieds = get_post_custom( $post-> $id );
	if (array_key_exists('mod1', $all_fieds)) :
?>
			
	<li>
		<div class="color_item_container">
			<img src="<?php echo get_field("mod1"); ?>" height="50" width="30" alt="alt">
		</div>
	</li>

<?php endif; ?>
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
alsopub
@alsopub
<?php
  $all_fieds = get_post_custom( $post-> $id );
  for ($i=1; $i<=5; $i++) {
  if (array_key_exists('mod'.$i, $all_fieds)) :
?>
      
  <li>
    <div class="color_item_container">
      <img src="<?php echo get_field("mod".$i); ?>" height="50" width="30" alt="alt">
    </div>
  </li>

<?php endif;
} ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
bigton
@bigton
Web-программист
<?php
  $all_fieds = get_post_custom( $post-> $id );
  if (array_intersect(['mod1', 'mod2'], $all_fieds)) :
?>
      
  <li>
    <div class="color_item_container">
      <img src="<?php echo get_field("mod1"); ?>" height="50" width="30" alt="alt">
    </div>
  </li>

<?php endif; ?>
Ответ написан
Комментировать
@novrm
<?php
$all_fieds = get_post_custom( $post->$id );
$needle = ['mod1' => null, 'mod2' => null, 'mod3' => null, 'mod4' => null, 'mod5' => null]; 
$needle = array_merge($needle, $all_fieds);
$needle = array_slice($needle, 0, 5); 
?>

<?php foreach ($needle as $key => $value): ?>
    <?php if (!is_null($value)): ?>
    <li>
        <div class="color_item_container">
            <img src="<?= get_field($key) ?>" height="50" width="30" alt="alt">
        </div>
    </li>
    <?php endif ?>
<?php endforeach ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы