【问题标题】:How do I find the 1st and 3rd columns from a 3byX grid如何从 3byX 网格中找到第一列和第三列
【发布时间】:2010-06-21 23:05:53
【问题描述】:

我有以下 foreach

foreach( $array as $v )
{
    if( SOME LOGIC HERE ) $class = "first";
    if( SOME LOGIC HERE ) $class2 = "third";
        print '<span class="$class $class2">$v["name"]</span>';
} 

我想将 $class1 设置为每 1、4、7、10 (3n - 2) 次的“第三”,并将 $class2 设置为 3、6、9、12 的“第三”

【问题讨论】:

    标签: php


    【解决方案1】:
    foreach( $array as $k => $v ) 
    { 
        if (($k % 3) == 0) { $class = "first"; }
        elseif(($k % 3) == 2) { $class = "third"; }
        else { $class = "second"; }
    
        print '<span class="$class $class2">$v["name"]</span>'; 
    }  
    

    【讨论】:

    • 如果键不是数字,则 $k % 3 会将 $k 转换为数字 0,因此 $k % 3 将始终为 0 % 3,结果为 0...。但在大多数情况下,提出这些问题的人都在使用整数键值
    【解决方案2】:

    使用取模运算符

    for ($i=0; $i<count($array); $i++)
        {
        if (($i-1)%3 == 0)
            $class = "first";
        else if ($i % 3 == 0)
            $class = "third";
    
        echo '<span class="'.$class.'">blablabla</span>
        }
    

    【讨论】:

    • 行不通!刚刚尝试过.. 使用 3 个元素的数组,它给出了类;第三,第一,第一。哦..还有一个';回声后不见了
    • @Phliplip:好的,我可能误读了你的问题,我以为你在谈论元素 1,而不是第一个元素(PHP 索引从 0 开始而不是 1)。无论如何,您只需要使用$i%3($i-1)%3($i-2)%3 来获取每个第一个、第二个和第三个元素,然后应用您需要的类。 (很抱歉,您的问题并不清楚您想要什么确切的输出)
    【解决方案3】:
    <?php
    $n = 0;
    foreach( $array as $v ) 
    { 
        $n++;
        switch($n) {
            case 1:
                $class = 'first';
                break;
            case 3:
                $class = 'third';
                $n = 0;
                break;
            default:
                $class = '';
                break;
        }
        print '<span class="' . $class . '">' . $v['name'] . '</span>'; 
    }
    ?>
    

    编辑:更新了代码,打印应该进入循环:)并清理了代码。

    【讨论】:

    • 顺便说一句。如果您实际上不需要 $class AND $class2 您可以将 $class2 重命名为 $class 并从跨度中删除 $class2
    猜你喜欢
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2022-01-15
    • 2014-06-06
    • 2023-04-01
    • 2021-09-11
    • 2012-03-13
    相关资源
    最近更新 更多