首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >排序结果为2列

排序结果为2列
EN

Stack Overflow用户
提问于 2012-04-05 17:01:31
回答 3查看 155关注 0票数 0

我得到了一个(php)数组,结果是1、2、3、4、5或6。我想在不同的情况下将它们显示如下:

1结果:

代码语言:javascript
复制
[result 1]

2结果:

代码语言:javascript
复制
[result 1]  [result 2]

3结果:

代码语言:javascript
复制
[result 1]  [result 3]
[result 2]

4结果:

代码语言:javascript
复制
[result 1]  [result 3]
[result 2]  [result 4]

5结果:

代码语言:javascript
复制
[result 1]  [result 4]
[result 2]  [result 5]
[result 3]

6结果:

代码语言:javascript
复制
[result 1]  [result 4]
[result 2]  [result 5]
[result 3]  [result 6]

如果我可以只使用CSS (当然不是表格)就好了,这样正确的顺序就会保留在源代码中,但显示方式与上面一样。否则,我想我需要一些奇怪的PHP循环来在我的屏幕上以正确的顺序获得这些结果。有人知道怎么做吗?提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2012-04-05 17:08:50

我想只用css是不可能做到这一点的。您必须将数组一分为二,并将前半部分显示为第一列,将后半部分显示为第二列。应该不是很难做吧?

票数 0
EN

Stack Overflow用户

发布于 2012-04-05 17:11:26

就像这样

代码语言:javascript
复制
$out = "<table><tbody>";
for ($i = 0; $i < count($array); $i++){
    $el = $array[$i];
    if(($i % 2) === 0){
        $out .= '<tr>';
    }
    $out .= "<td>$el</td>";
    //Handlethe case that this is the last iteration and 
    //the elements of the array are odd
    if((($i % 2) === 1) && (($i + 1) === count($array))){
        $out .= "<td></td></tr>";
    }elseif(($i % 2) === 1){
        $out .= "</tr>";
    }
}

$out .= "</tbody></table>";
票数 0
EN

Stack Overflow用户

发布于 2012-04-05 17:16:26

代码语言:javascript
复制
$array = array( 1, 2, 3, 4, 5, 6, 7 );

$number_of_columns = floatval(2.0); // float to make the below ceil work
$number_of_items = count( $array );
$items_per_column = ceil( $number_of_items / $number_of_columns );
$current_column = 0;

for ( $i = 0; $i < $number_of_items; $i++ ){

    if ( $i % items_per_column == 0 ){ 
        $current_column++;
    }

    echo $i, ' -> ', $current_column, '<br />';
}   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10025639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档