• 締切済み

同一列内のセルを結合して表示したい

DBから取得したデータで同じ項目データはテーブル で表示する際に、同一列内のセルをrowspanで結合し て見栄えをよくして表示させたいのですが、どうした らいいでしょう? http://www.atmarkit.co.jp/fdotnet/dotnettips/092joincells/joincells.html と同じことをPHPで実現させたいのです。 どなたかご教授願います。

  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

配列をテーブルに出力する例。 べつに、これが正解なわけではないんで、 ご自分で、いろいろ考えてみてください。 <?php $ary=array(); array_push($ary,array("1","■", "▲", "■")); array_push($ary,array("2","■", "●", "■")); array_push($ary,array("3","■", "●", "●")); array_push($ary,array("4","■", "■", "●")); array_push($ary,array("5","●", "■", "●")); array_push($ary,array("6","●", "■", "●")); print "<table border=1>\n"; for($row=0;$row<count($ary);$row++){  print "<tr>";  for($col=0;$col<count($ary[$row]);$col++){   $rowspan = 1;      if($ary[$row][$col] != ""){    $baserow = $row;    $next = 1;        while($next < count($ary)){     if($ary[$baserow][$col] == $ary[$baserow + $next][$col]){      $ary[$baserow + $next][$col] = "";      $rowspan += 1;      $next += 1;     }else{       break;     }    }    print "<td rowspan=$rowspan>".$ary[$row][$col]."</td>";   }  }  print "</tr>\n"; } print "</table>"; ?>

関連するQ&A

  • 結合セルを含む列の非表示方法

    結合セルを含んだ範囲で、列の非表示の方法で困っています。 いまA1:D1が結合されています。 B:C列を非表示にしたいのですが、結合セルがある為にA:Dが全て非表示になってしまいます。 結合されたセルを無視して、B:C列だけを非表示にする方法はどの様にしたらいいのでしょうか。 宜しくお願い致します。 Sub test() Columns("B:C").Select With Selection.EntireColumn .Hidden = True End With End Sub

  • エクセルで二つの列を結合して作ったセルと、一つの列で作ったセルがあるの

    エクセルで二つの列を結合して作ったセルと、一つの列で作ったセルがあるのですが、 同じ幅(ピクセル数)でそのほかの条件は同じなのに、 『縮小して文字全体を表示する』にすると 同じ桁数でも、文字の高さが違う状態になってしまいます。 フォント数を変えようかとも思ったのですが、6だと小さすぎて8だと大きすぎます^^; 何か良い方法はないでしょうか。 結合したセルと単独のセルとでは、同じ文字の大きさはできないのでしょうか。 困っております。。よろしくお願いします。

  • エクセルで0表示以外のセルの文字列を結合する方法

    エクセル(2003)で文字列の結合を「&」や「CONCATENATE関数」を使っておこなっていますが、文字列の空白または0表示の箇所のセルがあると「文字列000文字列00」のように「0」が表示されてしまいます。IF関数を併用してやっても「0」が表示されます。どのようにしたら「文字列 文字列」のように0表示なしで結合できるでしょうか。教えて下さい。現在、約180のセルにある文字列を1つに結合しようとしています。そのうちの結合文字列は多くて20ぐらいです。また、各セルの文字列はVLOOKUP関数により返しています。よろしくお願いします。

  • セルの高さを固定するには?

    2列2行のテーブルを作り、右の列をrowspan=2で結合しています。 右の列はテキストや画像を追加入力していくので、縦が長くなっていきます。 その際、左上のセルだけ高さを固定し、左下のセルは自動で高さが決まるようにしたいと思っています。 が、左上のセルにheight=150と入力しても、右が伸びるにつれて長くなってしまいます。 CSSで指定しても同じです。 rowspanを使うと、結合していないセルの高さを固定することはできないのでしょうか。 良い解決策がありましたら、お知恵をお貸し下さい。 <table> <tr> <td>ここを固定したいです</td> <td rowspan="2">ここが長くなっていきます</td> </tr> <tr> <td>ここは右が長くなるにつれて自動で伸びるようにしたいです</td> </tr> </table>

    • ベストアンサー
    • HTML
  • 結合されたセルのグラフ表示

    結合されたセルをグラフ表示しようとすると、空白セルが、ゼロ表示されてしまいグラフが細く見にくくなってしまいます。  空白セルを無視して、結合されたセルのデーターを1個のデーターとしてグラフ表示するにはどうしたらいいでしょうか。

  • 結合セルと単独セルの文字列マージ

    以下のような処理をしたいのですが、どのように実現すればよいかアドバイスをお願いします。 ----------------------- 以下のようなデータがあります。 ※等幅フォント以外は見にくいと思います。。。すいません。 ┌――――――┬―――――――┬――┐ |      |ニンテンドーDS| ○ | |      ├―――――――┬――┤ |      |PSP      | | | ゲーム機 ├―――――――┬――┤ |      |Wii      | ○ | |      ├―――――――┬――┤ |      |プレステ3   | | ├――――――┴―――――――┴――┤ |      |ビエラ    | | |      ├―――――――┬――┤ |      |ブラビア    | | |  テレビ  ├―――――――┬――┤ |      |Wooo      | ○ | |      ├―――――――┬――┤ |      |アクオス    | | └――――――┴―――――――┴――┘ 左端は結合セル、その他は単独セルです。 上記のとき、以下のように文字列をひとつのセルにまとめたいです。 ★以下の結果がひとつのセルに書き込まれる。 ゲーム機(ニンテンドーDS、Wii)、テレビ(Wooo) ----------------------- 結合セルのマクロでの処理が、調べたのですがいまいち理解できずでした。ヒントをいただければと思います。

  • テーブル結合 縦横両方するには?

    テーブルの縦の結合は rowspan テーブルの横の結合は colspan これを使って表を結合しました 1つのセルに両方入れると正常な表になりません <td rowspan="3" colspan="3"> </td> というふうに書いたのですが表が新たに変なセルが増えてしまいます 解決方法わかる方おしえてください あとrowspan="3"と書いたら縦の下2つのセルのプログラム文は 消しています、これは問題あるでしょうか? colspanも同じやり方です

    • ベストアンサー
    • HTML
  • PHP smarty で セルの結合方法

    PHP の Smarty で html_table 関数を使ってテーブルを出力しているのですが、セルの結合方法が分かりません。 td_attr 属性に colspan を設定してやる感じになると思うのですが、、 例えば、複数行2列のテーブルがあって、1行目だけ colspan=2 みたいな・・・。 「smarty セル 結合」でググってもそれらしいのがヒットしませんでした。。 宜しくお願いしますm(__)m

    • ベストアンサー
    • PHP
  • "結合をしていない複数セルの中央にデータを表示"同じことを縦でやりたい

    「データ並べ替え」をするシートの際、結合せずに"結合をしていない複数セルの中央にデータを表示"を使うことはよくあることだと思います。 しかしこの機能は、横のセルにしか使用出来ません。 同じようなことを、縦書きのセルで実現したいと考えています。 何かいい方法は無いでしょうか? ご教授頂ければと思います。

  • 結合セルのデータを結合していないセルに表示したい。

    WindowsXP、Excel2002を使用しています。 エクセルブック1のセル結合した縦横に大きなセルに入力された値を、エクセルブック2のセル結合していないひとつのセルに表示する方法を教えてください。 普通にコピー&ペーストすると、ひとつのセルにおさまらず、下のセルのデータが消えてしまいます。 よろしくお願いします!