配列をテーブルで簡単に表示するには? - PHPプロ!Q&A掲示板

243

  • 0P

配列をテーブルで簡単に表示するには?

質問日時 / 2006年11月17日 23:37    回答数 / 2件

Questioner:  shape  このエントリーをはてなブックマークに追加 

キーワード / 配列    テーブル   

配列の内容をテーブルで表示しようとしているのですが、どうしてもコードがごちゃごちゃしてしまいます。いい方法があったらご教授お願い致します。

テーブルは3列で作っており、この各セルに数字を入れていくものとします。

$list = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);

<table>
 <tr>
  <td></td>
  <td></td>
  <td></td>
 </tr>
</table>

といった感じです。今のところ次のように配列を2次元にしています。

// テーブルを分割する
$table_list = array();
$row_num = 0;
foreach ($list as $key => $val) {
 if (!(($key + 1)%3)) {
  $row_num++;
 }

 $table_list[$row_num][] = $val;
}

// 最後の行に値が足りなければ&nbsp;を加える
$count = count($table_list);
$last_count = count($table_list[$count-1];
$sub =  3 - $last_count;
if ($sub) {
 for ($i=0; $i<$sub; $i++) {
  $table_list[$count-1][$last_count + $i] = '&nbsp;';
}

この2次元にするところをもっとスマートにできないでしょうか?foreachを使わずに配列を分割する方法などありましたら、教えて下さい。よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01sogabe <?php define( 'MAX_ARRAY_SIZE', 3 ); $list =
 ┗A01-1shapeご回答ありがとうございます。返答が遅くなり、申し訳

回答一覧

並び替え:

A01 満足
answerersogabe [11月18日 10:03]


<?php
define( 'MAX_ARRAY_SIZE', 3 );

$list = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);

$table_list = array_chunk( $list, MAX_ARRAY_SIZE );
$count = count( $table_list  );
$table_list[$count - 1] = array_pad( $table_list[$count - 1], MAX_ARRAY_SIZE, '&nbsp;' );

var_dump( $table_list );

?>

でどうでしょうか。


V. 配列関数(array)
http://www.phppro.jp/phpmanual/php/ref.array.html

に、配列関連の便利なfunctionの説明があります。

この意見に回答する

ツリーへ TOPへ

A01-1
replyershape [11月20日 09:41]

ご回答ありがとうございます。返答が遅くなり、申し訳ありません。

array_chunkarray_pad関数を初めて知りました。非常に便利な関数ですね。ぜひ、これらの関数を使ってみたいと思います。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
array_mergeの再帰処理の動作について
 このエントリーをはてなブックマークに追加 
A
>1個になったとき$leftを返しますが、 >このとき、最終的な$leftはnullになるかと思います。 いいえ、最後は「渡された配列をそのまま」返します。要素が2以上あるときとの違いは(並べ替えずに戻るので...

>>続きを読む

再帰関数は最初の内は混乱しますが、非常に上手く使える場面もいずれ出てきます。これを機会に学んでいけるといいですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)