2011-11-07 42 views
0

我想修改一个joomla模块,我有一个小问题(这不是joomla相关的,因此没有必要的代码)。如何使foreach循环显示多个列上的项目?

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

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

而是这个

一个

b

Ç

d

电子商务

我想这

一个........ d

b ........Ë

Ç

+0

是一个表中的“列”的一部分,或者由相邻的div确定,或者___? – Wiseguy

回答

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]; 
} 

真正简单的代码,但可以使的伎俩!

0

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

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>'; 
} 
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 
+0

“随着更多字母的添加修改2” - 或者你可以做类似“$ num_cols = 2; ... if($ i%(count($ arr)/ $ num_cols)== 0){break;}” - 可能需要打电话给该部门周围的小区(),楼层()或小区(*),以便采取较好的措施 –

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 
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"; 
    } 
}