2011-03-04 267 views
1
$browsers = $day1; 
foreach($browsers as $browser) 
{ 
    echo "<input type='checkbox'/>$browser"; 
} 

當我使用這段代碼時,它給出了單行輸出,但我希望在單行中打印兩個條目,並且在中斷之後打印兩個條目。在PHP中的foreach循環

例子:

1 2 
3 4 
5 6 

誰能告訴我怎麼才能使用循環中的斷行?

+3

'$瀏覽器爲$ I => $ browser',然後使用條件$我打破它 – Joseadrian 2011-03-04 04:08:42

+0

能否請您更spesific? – Arda 2011-03-04 04:09:19

+0

你能把你的鉛筆分成兩組嗎?該算法**完全一樣** – 2011-03-04 04:16:40

回答

0

從你在說什麼,我想你的意思是你想讓每個複選框和標籤在一個新的行上。

foreach($browsers as $browser){ 
    echo '<p><input type="checkbox" /><label>'.$browser.'</label></p>'; 
} 

Ofcourse,你想添加在每個輸入標籤(和label標籤)一name屬性,如果你希望能夠處理它們在服務器端。

0

如果我給你正確的,你想顯示兩個在每一行不是休息後,試試這個

echo "<p>"; 
for($i=0;$i<count($browsers);$i++) { 
if($i>0 && ($i%2==0)) { echo "</p><p>"; } 
echo "<input type='checkbox' name='browser[".$browsers[$i]."]' /><label>".$browsers[$i]."</label>"; 
} 
echo "</p>"; 

編輯發表評論:

,如果它不枚舉,仍然很容易:

$i=0; 
echo "<p>"; 
foreach ($browsers as $randomstuff=>$browser) { //or whatever array structure. 
if($i>0 && ($i%2==0)) { echo "</p><p>"; } 
echo "<input type='checkbox' name='browser[".$browsers."]' /><label>".$browsers."</label>"; 
$i++; 
} 
echo "</p>"; 
+0

如果$ browsers不是枚舉列表? – 2011-03-04 04:15:35

+1

$ kbrowser = array_keys($ browsers); $ browsers [$ kbrowser [$ i]] – Joseadrian 2011-03-04 04:18:19

+0

更新了anser的枚舉情況。 – Arda 2011-03-04 04:18:52

1

如果這是你想要的輸出:

browser1 browser2 
browser3 browser4 
... 
browserN-1 browserN 

你可以試試這個:

$bIndex = 0; 
foreach($browsers as $browser) 
{ 
    echo "<input type='checkbox'/>$browser"; 
    if (($bIndex % 2) == 1) { // only true for odd bIndex values 
     echo "<br>"; 
    } 
    $bIndex++; 
} 
+0

如果它是一個數值數組,也可以使用'foreach($ browser作爲$ bIndex => $ browser)'。 – 2011-03-04 05:09:54