0

ここに記載されている多くの解決策を試しましたが、このコードを複数のテーブル行に分割することはできません。よろしくお願いします!

更新: 私の質問が明確でない場合は申し訳ありません。私は 5 つの列を持ち、新しいテーブル行を開始した後、これが役立つことを願っています。すべての答えをありがとう!

Update2: ここで私を助けてくれる人はいますか? 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>';
4

4 に答える 4

2

これは、ループでは TR ではなく TD のみを配置しているためです。各ループで 1 ずつインクリメントされるカウンターを維持する必要があります。

次にforeachループ内で、モジュロ演算子を使用して、TR タグを完成させて新しい TR タグを開始する必要がある 4 つの列が出力されているかどうかを確認できます。

@UPDATED: 5 列のユーザーのコメントに基づく

以下のコードを参照してください。

$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>';
于 2013-01-28T10:25:46.100 に答える
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

于 2013-01-28T10:27:43.630 に答える
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 つのループを説明する単なる擬似コードです。

この助けを願っています;)

于 2013-01-28T10:28:01.887 に答える
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の答えを少しだけ変えたものです。

于 2013-02-09T09:21:34.597 に答える