Php Foreach,每n:th项的特殊处理(例如奇数、偶数)
我有一个foreach,看起来像这样:Php Foreach,每n:th项的特殊处理(例如奇数、偶数),php,foreach,Php,Foreach,我有一个foreach,看起来像这样: foreach ($blogusers as $bloguser) { $args = array( 'author' => $bloguser->user_id, 'showposts' => 1,
foreach ($blogusers as $bloguser) {
$args = array(
'author' => $bloguser->user_id,
'showposts' => 1,
'caller_get_posts' => 1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
$user = get_userdata($bloguser->user_id);
userphoto($bloguser->user_id, "<div class='all_authors'><a href='http://blogg.nacka.se/nastasteg/author/".$user->user_login . "'>","</a><ul><li><a href='http://blogg.nacka.se/nastasteg/author/".$user->user_login . "'>" .$user->user_firstname."</a></li><li class='occupation'>".$user->user_lastname."</li></ul></div>", array('width' => 135, 'height' => 135));
#echo "<div class='all_authors'><a href='http://blogg.nacka.se/nastasteg/author/".$user->user_login . "'><img src='http://www.gravatar.com/avatar/" . md5( strtolower( trim( " $user->user_email " ) ) )."?s=135' /></a><ul><li><a href='http://blogg.nacka.se/nastasteg/author/".$user->user_login . "'>" .$user->user_firstname."</a></li><li class='occupation'>".$user->user_lastname."</li></ul></div>";
}
}
foreach($blogusers作为$bloguser){
$args=数组(
'author'=>$bloguser->user\u id,
“展示柱”=>1,
“来电者获取帖子”=>1
);
$my\u query=新的WP\u查询($args);
如果($my\u query->have\u posts()){
$user=get\u userdata($bloguser->user\u id);
userphoto($bloguser->user_id,“- ”,$user->user_lastname,“
”,数组('width'=>135,'height'=>135));
#echo“- ”$user->user_lastname。”
”;
}
}
在每个foth div中,都要添加一个额外的类。我该怎么做 在foreach之前创建一个名为$i的变量,并将其设置为0 在你内心深处,每一次都是如此
$class=($i%4==0)?”你的班级':''代码>
$class
现在是“yourclass”或空字符串
然后在foreach增量$i
与$i++的末尾,我将考虑在循环之前创建一个局部变量,在每次循环迭代时递增,在重要的循环迭代时执行操作并重置为0是否为其添加计数器
$counter = "";
foreach($array AS $variable){
$counter +=1;
// Here you will do your standard stuff you do always
if($counter == 4){ // check for right counter value
$counter = ""; // null the counter again
// HERE you can do stuff that only happens every 4th iteration
}
// HERE you can carry on with your usual stuff that happens always
}
当然有很多不同的方法可以做到这一点,在我看来这是最简单的方法。使用模运算符。我看到@Alex在这方面击败了我,但我提供了我编写和测试的代码,以便其他人能够更清楚地看到原则:
$blogusers=array('a','b','c','d','e','f','g','h','i','j');
$i=0;
foreach ($blogusers as $bloguser) {
if($i % 4 === 0) $extraclass= "fourthClass";
$resultHTML .= "<div class=\"standardClass $extraclass\">$bloguser</div>";
$i++;
$extraclass="";
}
echo $resultHTML;
$blogusers=array('a','b','c','d','e','f','g','h','i','j');
$i=0;
foreach($blogusers作为$bloguser){
如果($i%4==0)$extraclass=“fourthClass”;
$resultHTML.=“$bloguser”;
$i++;
$extraclass=“”;
}
echo$resultHTML;
可以使用三元运算符使其更紧凑,但这是原理。+1使用模运算符可能会令人讨厌,但“”==空
。如果是计数器,则将其设置为0
更合适。这当然行,毫无疑问。你是对的。我知道它有点脏:)我倾向于这样做,因为出于某种原因,在以后查看代码时,看到“”对我来说更容易找到0。我想我应该努力做到“更干净”,至少在这里帮助别人时是这样;)谢谢你提醒我。