每个循环我有两个,我试图为每个第二个结果输出不同的东西:
foreach ($wppost as $wp) {
$wp_title = $wp->post_title;
$wp_date = strtotime($wp->post_date);
$wp_slug = $wp->post_name;
$wp_id = $wp->ID;
// Start Permalink Template
$wp_showurl = $wp_url;
$wp_showurl = str_replace("%year%", date('Y', $wp_date), $wp_showurl);
$wp_showurl = str_replace("%monthnum%", date('m', $wp_date), $wp_showurl);
$wp_showurl = str_replace("%day%", date('d', $wp_date), $wp_showurl);
$wp_showurl = str_replace("%hour%", date('H', $wp_date), $wp_showurl);
$wp_showurl = str_replace("%minute%", date('i', $wp_date), $wp_showurl);
$wp_showurl = str_replace("%second%", date('s', $wp_date), $wp_showurl);
$wp_showurl = str_replace("%postname%", $wp_slug, $wp_showurl);
$wp_showurl = str_replace("%post_id%", $wp_id, $wp_showurl);
// Stop Permalink Template
$wp_posturl = $blog_address . $wp_showurl;
echo '<li><a href="'.$wp_posturl.'" title="'.$wp_title.'">'.$wp_title.'</a></li>';
}
对于这个,我希望它为每个第二个结果回显<li class="even">
而不仅仅是<li>
。我认为这必须改为for循环才能完成,但我不确定如何在不破坏它的情况下完成。
这个完全相同:
if(is_array($commenters)) {
foreach ($commenters as $k) {
?><li><?php
if($ns_options["make_links"] == 1) {
$url = ns_get_user_url($k->poster_id);
if(trim($url) != '')
{
echo "<a href='" . $url . "'>";
}
}
if($ns_options["make_links"] == 2) {
$url = ns_get_user_profile($k->poster_id);
echo "<a href='" . $url . "'>";
}
$name = $bbdb->get_var("
SELECT user_login
FROM $bbdb->users
WHERE ID = $k->poster_id");
echo ns_substr_ellipse($name, $ns_options["name_limit"]);
if(trim($url) != '' && $ns_options["make_links"] == 1) {
echo "</a>";
}
if($ns_options["make_links"] == 2) {
echo "</a>";
}
if ($ns_options["show_posts"] == 1)
{
echo " (" . $k->num_posts . ")\n";
}
echo $ns_options["end_html"] . "\n";
unset($url);
}
} else {
?></li><?php
}
谢谢,
瓦德
答案 0 :(得分:5)
您可以创建一个“计数”变量,然后使用$count % 2
的结果来确定它是奇数行还是偶数行:
$rowCount = 0;
foreach ($wppost as $wp) {
// stripping stuff:
echo '<li';
// increase $rowCount - if the remainder of a division by 2 is 1, echo extra class info:
if ($rowCount++ % 2 == 1 ) echo ' class="even"';
echo '><a href="'.$wp_posturl.'" title="'.$wp_title.'">'.$wp_title.'</a></li>';
}
if(is_array($commenters)) {
$commentCount = 0;
foreach ($commenters as $k) {
?><li<?php echo ($commentCount++%2==1)?' class="even"':''?>><?php
//stripped the rest of the loop:
}
}
答案 1 :(得分:0)
我已经做了类似的事情,也许这会帮助正在寻找这种解决方案的人。
@foreach ($occasions as $key => $occasion)
@if ($key++ % 2 == 1)
<li style="background: #f6f6f6;">
@else
<li>
@endif
<a href="{{ route('vendors.vendortype.city', ['vendortype' => 'wedding-venues', 'city' => request('city') ? request('city') : $defaultcity, 'occasions' => $occasion->slug]) }}" target="_blank">{{$occasion->name}}</a></li>
@endforeach