Добавить условие в foreach

Рейтинг: 0Ответов: 2Опубликовано: 06.06.2023

Есть код который обрабатывает массив с элементами

<?php foreach($this->primary as $key=>$item): ?>
    <div class="category_item_container">
        <?php $this->item = $item;
              echo $this->loadTemplate('item');
        ?>
    </div>
<?php endforeach; ?>

В него нужно добваить условие $this->item->created_by == JFactory::getUser()->id , чтобы выводились только те элементы, которые были созданы авторизированным пользователем.

Я попыталась сделать разными способами, в том числе так :

<?php 
  foreach($this->primary as $key=>$item): 
    $this->item = $item; 
    if ($this->item->created_by == JFactory::getUser()->id){ 
    continue; 
    } 
   echo $this->loadTemplate('item'); 
  endforeach; 
?>

Однако все равно выводятся все элементы массива. Подскажите как нужно сделать, чтобы выводились только те элементы, которые были созданы авторизированным пользователем.

Ответы

▲ 0
<?php 
  foreach ($this->primary as $key => $item): 
    if ($item->created_by !== JFactory::getUser()->id) { 
      continue; 
    } 
    echo $this->loadTemplate('item'); 
  endforeach; 
?>
▲ 0

Если JFactory::getUser()->id - это ИД авторизованного пользователя.

Почему бы тогда так не написать?

<?php
    foreach($this->primary as $key=>$item):
        $this->item = $item;
        if ($this->item->created_by == JFactory::getUser()->id){
            echo $this->loadTemplate('item');
        }
    endforeach;
?>