我确信这个标题的标题是不对的。 这是问题,我有 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的原样
答案 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所说。