我想从数组创建一些输入字段。 我有一个像
这样的数组$info = array("one" => "one1",
"two" => "two2",
"three" => "three3"
);
foreach ($info as $key => $value){
$field.= "<div class='formcol form-left middle'> \n";
$field.= " <input type='text' id='".$key."' size='12' name='".$key."' style='width:".$tam."px;'/>\n";
$field.= "\t\t\t <div class='text'>".$value."</div>\n";
$field.= "\t\t </div> \n";
}
它的工作非常好,但是如果数组的大小是6 像
$info = array( "one" => "one1",
"two" => "two2",
"three" => "three3",
"four" => "four4",
"five" => "five5",
"six" => "six6"
);
我想改变我必须创建的前三个数组值的代码来创建一个&#34; div&#34;然后创建其他&#34; div&#34;使用最后3个值,我将总是mod 3 = 0值,但问题是每3个使用值创建一个新的div
如何改进代码? 我在想像
$size = sizeof($info);
foreach ($info as $key => $value){
//if ($size % 3 ==0)
$field.= "<div class='formcol form-left middle'> \n";
//else
// {
$field.= " <input type='text' id='".$key."' size='12' name='".$key."' style='width:".$tam."px;'/>\n";
$field.= "\t\t\t <div class='text'>".$value."</div>\n";
// }
//if ($size % 3 ==0)
$field.= "\t\t </div> \n";
}
所以对于0,1,2这是一个新的div,那么3,4,5是新的div等。 这样做是最好的方法吗?
答案 0 :(得分:1)
你需要一个柜台:
$counter = 0;
$field .= "<div>";
foreach ($info as $key => $value){
$counter++;
if($counter % 3 == 0) {
$field .= "</div><div>";
}
//your code here
}
$field.= "</div>";
答案 1 :(得分:1)
将foreach改为for - 看起来更干净
$field .= "<div>";
for ($i=0; $i<count($info); $i++){
if($i % 3 == 0) {
$field .= "</div><div>";
}
//...
}
$field.= "</div>";