Php 非偶数的模环计算

Php 非偶数的模环计算,php,modulus,Php,Modulus,我需要用标记包装我的html输出 使用模数,我可以使用 但是对于结束我需要一个3、7、11、15、19等的模式。 这是我的尝试如果($i!=0&&($i-1)%4==0 | |$i==max-1)) 完整代码 $str = ''; $i = 0; $max = count($value['title']); foreach ($value['title'] as $key2){ //if( $i==0 || $i==4 || $i==8 || $i==12 || $i==16

我需要用
标记包装我的html输出
使用模数,我可以使用

但是对于结束
我需要一个
3、7、11、15、19等的模式。
这是我的尝试
如果($i!=0&&($i-1)%4==0 | |$i==max-1))

完整代码

$str = '';
$i = 0;
$max = count($value['title']);
foreach ($value['title'] as $key2){

        //if( $i==0 || $i==4 || $i==8 || $i==12 || $i==16 ) 
        if( $i==0 || $i % 4==0 )
            $str .= "<ul>";

        $str .= "<li><a href='#'>$key2</a></li>";

        if( $i==3 || $i==7 || $i==11 || $i==15 || $i==19 || $i==$max-1) 
        //if ( $i!=0 && (($i-1) % 4 == 0 || $i==$max-1) )
        //if( $i!=0 || $i % 3==1  || $i==$max-1) 
            $str .= "</ul>";

        $i++;
    }
echo $str;
$str='';
$i=0;
$max=count($value['title']);
foreach($value['title']作为$key2){
//如果($i==0 | |$i==4 | |$i==8 | |$i==12 | |$i==16)
如果($i==0 | |$i%4==0)
$str.=“
    ”; $str.=“
  • ”; 如果($i==3 | |$i==7 | |$i==11 | |$i==15 | |$i==19 | |$i==max-1) //如果($i!=0&($i-1)%4==0 | |$i==max-1)) //如果($i!=0 | |$i%3==1 | |$i==max-1) $str.=“
”; $i++; } echo$str;

发帖后,如果($i!=0&($i+1)%4==0 | |$$i==$max-1)),我会将减号改为加号
我更喜欢在数组上使用内爆,但这会按照您的方式进行

echo '<ul>';
foreach ( $array as $key => $value ) {
    echo "<li><a href='#'>$value</a></li>";
    if ( 3 === $key % 4 ) {
        echo '</ul><ul>';
    }
}
echo '</ul>';
echo'
    '; foreach($key=>$value的数组){ 回声“
  • ”; 如果(3==$key%4){ 回声“
    ”; } } 回声“
”;
我不喜欢这种方法,因为它意味着当数组有四个项目的倍数时,将有一个空的ul标记。这可能会有所不同,但我认为这太草率了

相反,我建议:

$list = '';
foreach ( $array as $key => $value ) {
    $list  .="<li><a href='#'>$value</a></li>";
    if ( 3 === $key % 4 ) {
        echo "<ul>$list</ul>";
        $list = '';
    }
}

if ( $list ) {
    echo "<ul>$list</ul>";
}
$list='';
foreach($key=>$value的数组){
$list.=“
  • ”; 如果(3==$key%4){ 回声“
      $list
    ”; $list=''; } } 如果($列表){ 回声“
      $list
    ”; }
    类似这样的东西

    $value['title'] = range(0, 100);
    $max = count($value['title']);
    $i = 0;
    $count = 4;
    $str = '';
    foreach ($value['title'] as $key2)
        {
        if ($i % $count == 0)
            $str .= "<ul>" . PHP_EOL;
    
        $str .= "<li><a href='#'>$key2</a></li>" . PHP_EOL;
    
        if ($i % $count == $count - 1 || $i == $max - 1)
            $str .= "</ul>" . PHP_EOL;
        $i++;
        }
    
    echo $str;
    
    $value['title']=范围(01100);
    $max=count($value['title']);
    $i=0;
    $count=4;
    $str='';
    foreach($value['title']作为$key2)
    {
    如果($i%$count==0)
    $str.=“
      ”.PHP\u EOL; $str.=“
    • ”。PHP\u EOL; 如果($i%$count==$count-1 | |$i==$max-1) $str.=“
    ”。PHP\u EOL; $i++; } echo$str;

    标题数组是否始终具有四个项目的倍数?有11项吗?@t q解释清楚。你想要什么
    $value['title'] = range(0, 100);
    $max = count($value['title']);
    $i = 0;
    $count = 4;
    $str = '';
    foreach ($value['title'] as $key2)
        {
        if ($i % $count == 0)
            $str .= "<ul>" . PHP_EOL;
    
        $str .= "<li><a href='#'>$key2</a></li>" . PHP_EOL;
    
        if ($i % $count == $count - 1 || $i == $max - 1)
            $str .= "</ul>" . PHP_EOL;
        $i++;
        }
    
    echo $str;