mysqlからデータをphpで取得し以下のような多次元配列になっています。
Array
(
[0] => Array
(
[id] => 116
[name] => あああ
)
[1] => Array
(
[id] => 58
[name] => いいい
)
[2] => Array
(
[id] => 89
[name] => ううう
)
)
単純にデータを表示させたく以下のようにしましたが<th>$key2</th>の箇所が上記配列の場合
2回繰り返されて表示されてしまいます。ここはフィールド名なので1回の表示でいいのですが
どのように記述すれば思うような表示になるでしょうか?
echo "<table border=\"1\">";
echo "<tr>";
foreach ($tmp1 as $key => $val) {
foreach ($val as $key2 => $val2) {
echo "<th>" . $key2 . "</th>"; //フィールド名
}
}
echo "</tr>";
foreach ($tmp1 as $key => $val) {
echo "<tr>";
foreach ($val as $key2 => $val2) {
echo "<td>" . $val2 . "</td>"; // 取得したデータをある分だけ繰り返し
}
echo "</tr>";
}
echo "</table>";
No.2ベストアンサー
- 回答日時:
表示を1回だけなら、↓では?
foreach ($tmp1 as $key => $val) {
foreach ($val as $key2 => $val2) {
echo "<th>" . $key2 . "</th>";
}
break;
}
または、
foreach ($tmp1[0] as $key => $val) {
echo "<th>" . $key . "</th>";
}
No.3
- 回答日時:
とりあえず、前述されているもの以外の方法としまして、
//array_keysはその配列のキー(連想配列名)を全部取得する
//なので、mysqlから取得した最初の配列部分のキーを取得しておく。
$keys = array_keys($array[0]);
echo '<table border="1">';
echo '<tr>';
foreach($keys as $key){
echo '<th>'.$key.'</th>';
}
echo '</tr>';
echo '<tr>';
foreach($array as $key=>$value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '</table>';
というのではいかがでしょうか。
No.1
- 回答日時:
<?php
$arr = array(array("id"=> 116 ,"name"=>"あああ" ),array( "id"=> 58 ,"name"=>"いいい" ),array( "id"=> 89 ,"name"=>"ううう" ));
/* DOMを使っているのはソースを書きたくないっていう好みの問題。 っていうか後半まで質問内容とこれっぽっちも関係ない。*/
$doc = new DOMDocument("1.0","UTF-8");
$doctype = $doc->implementation->createDocumentType("html","-//W3C//DTD XHTML 1.0 Strict//EN","http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
$doc->appendChild($doctype);
$doc->formatOutput = true;
$html = $doc->createElementNS("http://www.w3.org/1999/xhtml","html");
$head = $doc->createElementNS("http://www.w3.org/1999/xhtml","head");
$title = $doc->createElementNS("http://www.w3.org/1999/xhtml","title");
$title->appendChild($doc->createTextNode("Q5016158 TestCase 1"));
$head->appendChild($title);
$body = $doc->createElementNS("http://www.w3.org/1999/xhtml","body");
$table = $doc->createElementNS("http://www.w3.org/1999/xhtml","table");
$caption = $doc->createElementNS("http://www.w3.org/1999/xhtml","caption");
$caption->appendChild($doc->createTextNode("表"));
$table->appendChild($caption);
$thead = $doc->createElementNS("http://www.w3.org/1999/xhtml","thead");
$tr = $doc->createElementNS("http://www.w3.org/1999/xhtml","tr");
/* 関係あるのはここから。*/
/* 要は二つに分ける。*/
$tmp = $arr[0];
foreach ($tmp as $key => $val) {
$th = $doc->createElementNS("http://www.w3.org/1999/xhtml","th");
$th->appendChild($doc->createTextNode($key));
$tr->appendChild($th);
}
$thead->appendChild($tr);
$tbody = $doc->createElementNS("http://www.w3.org/1999/xhtml","tbody");
$tr = $doc->createElementNS("http://www.w3.org/1999/xhtml","tr");
foreach ($arr as $key => $val) {
$tr = $doc->createElementNS("http://www.w3.org/1999/xhtml","tr");
foreach ($val as $key2 => $val2) {
$td = $doc->createElementNS("http://www.w3.org/1999/xhtml","td");
$td->appendChild($doc->createTextNode($val2));
$tr->appendChild($td);
}
$tbody->appendChild($tr);
}
$table->appendChild($thead);
$table->appendChild($tbody);
$body->appendChild($table);
$html->appendChild($head);
$html->appendChild($body);
$doc->appendChild($html);
print($doc->saveXML());
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
POSTで渡されるデータの数がわ...
-
PHPでこのコード自体に意味は無...
-
foreachとかの勝手な省略?
-
Smartyでインクリメント
-
VB.NET で 二次元のハッシュは...
-
PHP、{}記号の意味
-
PHPでテキストファイルを読み込...
-
多次元配列を、1次元の配列にす...
-
ラジオボタンをランダムに表示...
-
foreachで上限回数指定方法また...
-
file_existsでファイル名の部分...
-
プルダウンメニューにDBの内容...
-
特定の文からメールアドレスの...
-
行数が30万件ほどあるCSVから、...
-
複数行のデータのPOST処理に関して
-
チェックボックス複数選択 mys...
-
日付、時間の2段階でソート
-
スカラーのベクトル微分
-
別ファイルの構造体の値を読み...
-
foreachのなかで次のキーを参照...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
smartyのforeachの使い方
-
マッチング処理(1:N)
-
foreachで上限回数指定方法また...
-
多次元配列を、1次元の配列にす...
-
foreachの間にテーブルの<TR>を...
-
PHP、{}記号の意味
-
VB.NET で 二次元のハッシュは...
-
$_POST受信で必要項目のみを結...
-
3つの連想配列を交互に代入し...
-
PHP:ツリー構造をulとli要素に...
-
foreachで配列を、左から縦3列...
-
PHPの構文で間違えが分からない
-
PHPで連想配列のプルダウンメニ...
-
添え字が全て文字列のPHPの多次...
-
テーブルデータ表示
-
Smartyでインクリメント
-
PHPで変数名にハイフンを使うに...
-
POSTで渡されるデータの数がわ...
-
Delphi XEの警告文を消したい
-
配列の要素の値をループ中に変...
おすすめ情報