我在这里尝试了很多解决方案,但我无法将这段代码拆分成多个表行。非常感谢提前!!
更新:对不起,如果我的问题不明确。我希望有5个cols并开始一个新的表格行,希望这会有所帮助。谢谢你的所有答案!
更新2:有人可以帮助我吗? Minesh的代码很接近,但我仍然会收到错误,请参阅下面的评论。很多,非常感谢提前!!
$opties.='<b>'.$option['name'].':</b><br /><table><tr>';
foreach ($option['option_value'] as $option_value) {
$opties.= '<td><img src="image/cache/'.$option_thumb.'" /><br />'.$option_value['name'].'</td>';
}
$opties.='</tr></table>';
答案 0 :(得分:2)
那是因为在循环中你只是把TD而不是TR。 您需要维护计数器,它在每个循环中递增1。
然后在 foreach 循环中,您可以使用模运算符进行检查,如果打印了4列,则需要完成TR标记并启动新的TR标记。
@UPDATED:根据用户对5 cols的评论
见下面的代码:
$opties.='<b>'.$option['name'].':</b><br /><table><tr>';
$cnt=0;
foreach ($option['option_value'] as $option_value) {
if($cnt % 5 == 0 && $cnt > 1)
$opties .= '</tr><tr>';
$opties .= '<td><img src="image/cache/'.$option_thumb.'" /><br />'.$option_value['name'].'</td>';
$cnt++;
}
if(count($option['option_value']) % 5 > 0)
$opties.='</tr>';
$opties.='</table>';
答案 1 :(得分:1)
我不确定这是不是你想要的,但试试:
$opties.='<b>'.$option['name'].':</b><br /><table>';
foreach ($option['option_value'] as $option_value) {
$opties.= '<tr><td><img src="image/cache/'.$option_thumb.'" /><br />'.$option_value['name'].'</td></tr>';
}
$opties.='</table>';
如果您要创建多行,则必须在<tr>
循环中使用foreach
标记。
答案 2 :(得分:0)
首先
你应该有2个循环
foreach($opties as $rows => $column)
//now it's row so echo
<tr>
foreach( $column as $key => $value) {
// now it's <td> turn
<td> data </td>
}
</tr>
}
这只是解释2循环的伪代码
希望这个帮助;)
答案 3 :(得分:0)
我不知道你的数组包含什么,所以我给你一个更通用的例子。
$array = array(1,2,3,4,5,6,7,8,9,10);
$chunks = array_chunk($array, 5);
$output = '<table>' . PHP_EOL;
foreach ($chunks as $row) {
$output .= '<tr>';
foreach ($row as $col) {
$output .= '<td>' . $col . '</td>';
}
$output .= '</tr>' . PHP_EOL;
};
$output .= '</table>';
echo $output;
这与@ Piya的答案略有不同。