2011-11-07 69 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"; 
    } 
}