在PHP中的foreach循环

时间:2011-03-04 04:05:21

标签: php

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

当我使用这段代码时,它以单行显示输出,但我希望在中断后打印两个条目,然后在中断后打印。

示例:

1 2
3 4
5 6

有谁能告诉我如何在循环中使用换行符?

3 个答案:

答案 0 :(得分: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++;
}

答案 1 :(得分:0)

根据您的说法,我认为您的意思是希望将每个复选框和标签放在新行上。

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

当然,如果您希望能够在服务器端处理它们,那么您希望在每个输入标记(以及name标记)上添加label属性。< / p>

答案 2 :(得分: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>";