如何在多个列上显示foreach循环显示项?

时间:2011-11-07 14:33:40

标签: php joomla foreach

我试图修改一个joomla模块,我遇到一个小问题(这与joomla无关,因此无需代码)。

我有一个foreach循环,其中有一段显示文章的代码。当您在管理面板中设置它时,它会重复多次。我想添加使该模块在多个列上显示项目的功能。我所需要的只是振作,我想我还有其他一切。

基本上我如何修改一个简单的foreach循环,以便它在多个列上显示文章?

而不是这个

B'/ P>

C

d

ë

我想要这个

a ........ d

b ........ e

C

6 个答案:

答案 0 :(得分:1)

如果您坚持使用表

,您可以从中间获得结果计数和工作
$half_count = floor(count($entries) / 2);
for($i=0;$i<$half_count;$i++)
{
    echo '<tr>';
    echo '<td>' . $entries[$i] . '</td>';
    echo '<td>' . (isset($entries[$half_count + $i]) ? $entries[$half_count + $i]: '') . '</td>';
    echo '</tr>';
}

答案 1 :(得分:1)

这是一种简单的方法:

php > $arr = array(1,2, 3, 4, 5, 6, 7, 8, 9, 10);
php > for ($i=0; $i<count($arr); $i+=2) { print $arr[$i] . "\t" . $arr[$i+1] . "\n"; }
1       2
3       4
5       6
7       8
9       10

答案 2 :(得分:0)

据我所知,你不能用foreach语句来做,而是用for。

例如:

$iterations = (count($array_of_items) % 2) ? (count($array_of_items) / 2) + 1 : count($array_of_items) / 2;
for ($i = 0; $i <= $iterations; $i++) {
if (isset($array_of_items[$i+3]))
   echo $array_of_items[$i].'........'.$array_of_items[$i+3];
else
   echo $array_of_items[$i];
}

真正简单的代码没有这么少的信息,但可以成功!

答案 3 :(得分:0)

我不是在for循环中输出,而是在for循环中创建两个文章数组。然后遍历这些数组以在主循环之外创建列。

答案 4 :(得分:0)

你在问题​​上的信息很少,但这里有你可以使用的东西

$arr = array("a","b","c","d","e","f");

for ($i = 0; $i<count($arr); $i++){
    echo $arr[$i]."    ". $arr[$i+3] ."\n";
    if($i == 2){ break;} //Modify 2 as more alphabets are added
}

输出

a    d
b    e
c    f

答案 5 :(得分:0)

对于通用解决方案,假设打包数组....

function show_table($data, $columns)
{
    $items=count($data);
    $iters=$items/$columns + ($items % $columns) ? 1 : 0;
    for ($y=0; $y<$iters; $y++) {
      for ($x=0; $x<$columns; $x++) {
         $offset=$y*$columns + $x;
         if ($offset<$items) print $data[$offset] . ' ';
      }
      print "\n";
    }
}