@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; ?>
  • Вопрос задан
  • 230 просмотров
Решения вопроса 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 ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы