2016-04-15 6 views
1

Привет, я хочу изменить содержание на количество сообщений, так что если цикл foreach получил только 2 сообщения, он должен сказать 2. Но он не работает?Изменение содержания на количество сообщений в цикле foreach

<?php if (!empty($iconMenu)) { ?> 
<nav class="menu-top"> 
<?php $i = 0; 
foreach($iconMenu as $icon) { 
    $page = Website::getActiveTreeBranch($icon['link']); 
    if ($page !== false) { 
     $i++; 

     if($i=1){ ?> 
     1 
     <?php } ?> 

     <?php if($i=2){ ?> 
     2 
     <?php } ?> 

    <?php }} ?> 
<?php } ?> 
</nav> 
+0

'$ i == 1' и' $ i == 2' –

+1

Почему вы закрываете тег php в if? Держите его открытым и используйте эхо «1» ;. Это сделает код более чистым и более легким для чтения на мой взгляд. – Andreas

+0

Он по-прежнему не работает, и там должен быть огромный список divs, поэтому эхо сделает его не чище imo. – hello123

ответ

0

Простая опечатка:

= является оператором присваивания и == является проверка равенства оператора.

Изменить код:

if($i=1){ ?> 
1 
<?php } ?> 
<?php if($i=2){ ?> 

Для

if ($i == 1) { 
echo '1' 
} 
if($i == 2) { 

Таким образом, конечный (очищен код):

<?php 
if (! empty($iconMenu)) { 
    echo '<nav class="menu-top">'; 
    $i = 0; 
    foreach ($iconMenu as $icon) { 
     $page = Website::getActiveTreeBranch($icon['link']); 
     if ($page !== false) { 
      $i++; 
      if ($i == 1) { 
       echo '1'; 
      } 
      if ($i == 2) { 
       echo '2 '; 
      } 
     } 
    } 
} 
echo '</nav>'; 
?> 
+0

Вы можете предложить избавиться от всех этих ' ', Которые делают код почти нечитаемым и определенно сложнее отлаживать, и используя простой' echo' – RiggsFolly

+0

Возможно, вам нужно будет показать ему весь код, чтобы сделать очевидным то, что вы сделали – RiggsFolly

+0

@RiggsFolly, спасибо. Я обновил свой ответ. Добро пожаловать. – Pupil

0

Этот ответ не на вопрос, но помочь ему как использовать тег php.

<?php $i = 0; 
foreach($iconMenu as $icon) { 
$page = Website::getActiveTreeBranch($icon['link']); 
if ($page !== false) { 
    $i++; 

    if($i==1){ 
     Echo "1"; 
    } 

    if($i==2){ 
     echo "2"; 
    } 

    }} 
} ?> 
</nav> 

Я не проверял дважды, если есть правильный номер {и}, когда я набираю текст на своем телефоне.

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

0

Я установил его, я должен был использовать Count вместо этого.

Смежные вопросы