Я пытаюсь добавить first
и last
класс в некоторые элементы LI
, и у меня возникла проблема с первым индексом. Код, где у меня есть вопрос здесь:Проблема с выпуском PHP foreach с первым элементом
// this is always true, and all items get the `first` class
if ($i == 0) { $menu_item_class .= ' first'; }
Весь код выглядит следующим образом:
function social_icons($menu_item_class='', $icon_class='', $title_class = ''){
$menu_item_class .= ($title_class != '') ? ' no-title' : '';
$social_network = array(
0=> array (
"title"=> "ello",
"url"=>"envato"
),
1=> array (
"title"=> "vk",
"url"=> "envato"
),
2=> array (
"title"=> "twitter",
"url"=> "envato"
),
3=> array (
"title"=> "lastfm",
"url"=> "envato"
)
);
$social_icon_wrapper = ' string';
$type = ' string2';
$count = 4;
if ($count > 0) { ?>
<div id="social-network">
<ul class="social-icons">
<?php foreach ($social_network as $i=>$sn){
// var_dump($i); // this always returns fine
if ($i == 0) { $menu_item_class .= ' first'; } // for some reason this IF is always true
if ($i == ($count-1)) { $menu_item_class .= ' last'; } ?>
<?php if ($sn['title'] == 'ello') { ?> <li class="<?php echo $menu_item_class; ?>"><a class="ello" href="https://ello.co/<?php echo $sn['url']; ?>"><span class="social-icon-wrapper<?php echo $type; ?>"><i class="<?php echo $icon_class; ?> social-ello"></i></span>ello</a></li><?php } ?>
<?php if ($sn['title'] == 'vk') { ?> <li class="<?php echo $menu_item_class; ?>"><a class="vk" href="https://vk.com/<?php echo $sn['url']; ?>"><span class="social-icon-wrapper<?php echo $type; ?>"><i class="<?php echo $icon_class; ?> social-vk"></i></span>vk</a></li><?php } ?>
<?php if ($sn['title'] == 'facebook') { ?> <li class="<?php echo $menu_item_class; ?>"><a class="facebook" href="https://www.facebook.com/<?php echo $sn['url']; ?>"><span class="social-icon-wrapper<?php echo $type; ?>"><i class="<?php echo $icon_class; ?> social-facebook"></i></span>facebook</a></li><?php } ?>
<?php if ($sn['title'] == 'pinterest') { ?> <li class="<?php echo $menu_item_class; ?>"><a class="pinterest" href="https://pinterest.com/<?php echo $sn['url']; ?>"><span class="social-icon-wrapper<?php echo $type; ?>"><i class="<?php echo $icon_class; ?> social-pinterest"></i></span>pinterest</a></li><?php } ?>
<?php if ($sn['title'] == 'twitter') { ?> <li class="<?php echo $menu_item_class; ?>"><a class="twitter" href="https://www.twitter.com/<?php echo $sn['url']; ?>"><span class="social-icon-wrapper<?php echo $type; ?>"><i class="<?php echo $icon_class; ?> social-twitter"></i></span>twitter</a></li><?php } ?>
<?php if ($sn['title'] == 'lastfm') { ?> <li class="<?php echo $menu_item_class; ?>"><a class="lastfm" href="http://www.last.fm/user/<?php echo $sn['url']; ?>"><span class="social-icon-wrapper<?php echo $type; ?>"><i class="<?php echo $icon_class; ?> social-lastfm"></i></span>lastfm</a></li><?php } ?>
<?php } ?>
</ul>
</div>
<?php }
}
social_icons();
Я сделал простой pen, чтобы проиллюстрировать эту проблему. Пожалуйста, проверьте и дайте мне знать, что случилось.
Разве это не потому, что, как только вы установите переменную она не изменяется в течение следующего цикла? ('If' только true один раз - вы можете« эхо »проверить это, но значение установлено и не изменено последним - теперь переменная имеет значение'. = 'First'', правильно?) – FirstOne
Вы должны проверить код и вывод пера. – thednp
Класс 'first' установлен для всех' LI', а 'last' установлен правильно только для последнего. @ chris85 Я просто попробовал ваше решение безрезультатно. – thednp