将列结果显示为行结果php

时间:2011-10-30 13:36:22

标签: php

我确信这个标题的标题是不对的。 这是问题,我有 3 列和 6 结果 像这样显示

Column1           Column2             Column3
result1           result3             result5
result2           result4             result6

但需要他们这样

Column1           Column2             Column3
result1           result2             result3
result4           result5             result6

我的数组包含所有6个结果,到目前为止,我看到我需要选择每个0和第2个显示在column1中并继续(数组从0开始)。

代码非常大,但切换结果的主要部分是

$count = count($result);
for ($result = 0; $result < $count; $result++) {
                    $getorder= "";
                    if ($count != 1) {
                        if ($result == 0) $getorder= "first";
                        if ($result == $count - 1) $getorder= "last";
                    }


    echo '<div class="'.$getorder.'width'.intval(100 / $count).'">'.$mycolumn[$result].'</div>';
}

所以这里应该有某种划分。这是一个愚蠢的例子

$mycolumn[$result % X == X]

我希望我没有混淆你,你明白了。如果你问自己为什么我不只是做行而不是列,答案是完整的css重建。在这里,我想出了我可以定位结果并保持列和css的原样

2 个答案:

答案 0 :(得分:2)

不要使用($result / 3),因为您可以拥有seriuous rounding problem。 既然对我而言你的vars的名字不是很清楚,我发布了一个php通用代码,它是:

echo '<div class="result">';
for($i = 0; $i < $columnNum; $i++)
{
   echo '<div class="column">';
   for($j = $i; $j < $resultNum; $j += $columnNum)
      echo '<label class="value">' . array[j] . "</label>";
   echo '</div>';
}
echo '</div>';

只需根据您的需要更改vars名称,这就是您问题的解决方案。

答案 1 :(得分:1)

$mycolumn[intval($result / 3) + intval(($result % 3) * $count / 3)]

演示http://codepad.viper-7.com/hdSi6b

完美无瑕地工作。

你可以改变整个代码,如AurelioDeRosa所说。