Php 从后端将数据获取到一行中的三列中

Php 从后端将数据获取到一行中的三列中,php,html-table,Php,Html Table,我正在制作一个函数,在该函数中,我试图获取的数据位于一行中的两列中,并且生成了多行。数据被安排在表格中,我试图用三列而不是两列来制作表格,但没有成功。有时在某些行中,它跳过一列,有时在一行中输出完美的3列。下面的代码适用于每行中的两列,但如何使数据显示在一行中的三列 $r = 1; $html = ""; $html .= '<table class="table table-bordered"> <tbody><tr>'; foreach($prod

我正在制作一个函数,在该函数中,我试图获取的数据位于
一行中的
两列中,并且生成了多行。数据被安排在表格中,我试图用
三列
而不是
两列
来制作表格,但没有成功。有时在某些行中,它跳过一列,有时在一行中输出完美的3列。下面的代码适用于每行中的两列,但如何使数据显示在一行中的三列

$r = 1;
$html = "";
$html .= '<table class="table table-bordered">
<tbody><tr>';
    foreach($products as $pr) {
        if($r != 1) {$rw = (bool)($r & 1);
        $html .= $rw ? '</tr><tr>' : ''; }
            $html .= '<td><strong>'.$pr->name.'</strong><br>'.'<strong>Rs '.$pr->price.'</strong><br>'.$this->product_barcode($pr->code, 30, 147).'</td>';
        $r++;
    } 
$html .= '</tr></tbody>
</table>';

$data['html'] = $html;
$r=1;
$html=“”;
$html.='
';
foreach(产品为$pr){
如果($r!=1){$rw=(bool)($r&1);
$html.=$rw?“”:“;}
$html.=''.$pr->name.
'.Rs.$pr->price.
'.$this->product\u条形码($pr->code,30147)。''; $r++; } $html.=' '; $data['html']=$html;
这是输出屏幕截图。它在一行中有两列。我希望一行有3列

给你:)模数运算符在这里有帮助

$html='';
$r=0;
$columns=3;
foreach(产品为$pr){
如果($r%$columns==0)$html.='';
$html.='';
$html.='。$pr->name.
; $html.=$pr->price.“
”; $html.=$this->product\u条形码($pr->code,30147); $html.=''; 如果($r%$columns==$columns | |$r++==count($products)-1)$html.=''; } $html.='';
很抱歉,所有这些值(名称、价格、条形码)将放在一行中,一行中有3个,多行。我能在第二排做到,但不是第三排——我发现很难准确理解你当时的意思。你能为你的$products数组提供一个var_转储吗?1分钟后我会上传一个截图,我已经添加了截图。这将有助于我们双方传达和理解哈哈-不,我不是那个意思:)我只是犯了一个错误,因为我在发布之前没有测试。谢谢你接受我的回答。我已经用工作代码更新了答案,并包含了一个简单的变量来更改要显示的列数。
$html = '<table class="table table-bordered"><table>';
$r = 0;
$columns = 3;
foreach ($products as $pr) {
    if ($r%$columns == 0) $html .= '<tr>';
    $html .= '<td>';
    $html .= '<strong>'.$pr->name.'</strong><br />';
    $html .= $pr->price.'<br />';
    $html .= $this->product_barcode($pr->code, 30, 147);
    $html .= '</td>';
    if ($r%$columns == $columns || $r++ == count($products)-1) $html .= '</tr>';
}
$html .= '</tbody></table>';