2011-03-04 170 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