Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Foreach,每n:th项的特殊处理(例如奇数、偶数)_Php_Foreach - Fatal编程技术网

Php Foreach,每n:th项的特殊处理(例如奇数、偶数)

Php Foreach,每n:th项的特殊处理(例如奇数、偶数),php,foreach,Php,Foreach,我有一个foreach,看起来像这样: foreach ($blogusers as $bloguser) { $args = array( 'author' => $bloguser->user_id, 'showposts' => 1,

我有一个foreach,看起来像这样:

                          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。我想我应该努力做到“更干净”,至少在这里帮助别人时是这样;)谢谢你提醒我。