2014-01-11 2 views
0

나는 얻으려고하는 데이터가 two columns에 있으며, one row에 여러 개의 행이 생성되는 함수를 만들고 있습니다. 데이터가 테이블에 배열되어 있고 two 대신 three columns으로 테이블을 만들려고했으나 제대로 작동하지 않았습니다. 때로는 일부 행에서 한 열을 건너 뛰고 때로는 한 행에서 완벽한 3 열을 출력합니다. 아래 코드는 각 행에 two columns에 대해 완벽하게 작동합니다. 그러나 데이터를 한 행에 three column에 표시하는 방법은 무엇입니까?백엔드에서 한 행에 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; 

다음은 출력 스크린 샷입니다. 그 행은 2 열로 나옵니다. 한 행에 3 개의 열이 필요합니다.

See its coming in 2 columns i want this in 3

답변

2

은 여기 : 계수 운영자가 여기에 있습니다 이동합니다.

http://en.wikipedia.org/wiki/Modulo_operation

$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>'; 
+0

죄송하지만, 그 값 (이름, 가격, 바코드) 모두가 하나 에있을 것이며, 한 행에서 3 있을 것입니다 많은 행이 될 것입니다. 내가 행에서 2 에 대해 운동 할 수 있었지만 3이 아니 었습니다 – user1001176

+0

미안 해요 - 당신이 의미하는 바를 정확히 이해하는 것이 어렵다는 것을 알고 있습니다. $ products 배열의 var_dump를 제공 할 수 있습니까? –

+0

1 분 스크린 샷을 업로드합니다 – user1001176

관련 문제