![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
以下のような多次元配列があり、以下のようなリストを表示させたいのですが。
$data =
array( [0] => array( [date] =>'2008-04-13'
[title] => array( [0] =>'aaaaaa'
[1] =>'bbbbbb'
[2] =>'cccccc'
)
[id] => array( [0] => 23
[1] => 24
[2] => 25
)
)
[1] => array([date] =>'2008-03-03'
[title] => array( [0] =>'ddddd'
[1] =>'eeeee'
[id] => array( [0] => 21
[1] => 22
)
)
)
$smarty->assign('data', $data);
こんなリストにしたい。
2008-04-13
23---aaaaaa
24---bbbbbb
25---cccccc
2008-03-03
21---dddddd
22---eeeeee
テンプレート側で下記のコーディングを試みましたが、だめでした。
{foreach from=$data item=value01 }
<dt>{$value01.date}</dt>
{foreach from=$value01 item=value02 }
<dd>{$value02.id}---{$value02.title}</dd>
{/foreach}
{/foreach}
結果
2008-04-13
2
2008-03-03
2
となりました。
ネストしたループをそれぞれの id または title の要素数だけループさせるにはどうしたらよいでしょうか。
どなたかご教授の程、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
確かに、特徴的かも。
どうも、継ぎはぎで作った感が否めませんね。
Smartyの本も出てますが、やはり最後はマニュアルでしょう。
カスタマイズの辺りは結構面白いです。
sectionは、添え字を抜き出しますので、複数の配列を1つのループの中で扱えます。foreachは、配列を要素に分解しますので、他の配列を同時には分解できません。
この問題に関しては、与えるデータの構造を変えて、foreachで回した方がスマートでは?
$data =array(
array('date' =>'2008-04-13',
array(
array('title' => 'aaaaaa', 'id' => 23),
array('title' => 'bbbbbb', 'id' => 24),
array('title' => 'cccccc', 'id' => 25))),
array('date' =>'2008-03-03',
array(
array('title' => 'dddddd', 'id' => 21),
array('title' => 'eeeeee', 'id' => 22))))
括弧、あってるかな?
No.1
- 回答日時:
{foreach from=$data item=value01 }
<dt>{$value01.date}</dt>
{section loop=$value01.id name='i'}
<dd>{$value01.id[i]}---{$value01.title[i]}</dd>
{/section}
{/foreach}
sectionを使えばできます。
また、参考になる回答をありがとうございました。
Smartyの文法は特徴的ですね。そんなことはないですか?
Smartyはまだ勉強し始めでわかってないことが多いのですが、www.smarty.net/manual/ja/ ですべて勉強できますか?
他に参考になるサイトをご教示いただけたら幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript 1度きりではなく、繰り返し、挙動が変わるようにしていただきたいです。 1 2022/07/03 15:50
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- PHP php ログイン 1 2022/11/01 00:24
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングのPythonのnoteb...
-
行列
-
mallocで char *型の配列を確...
-
特定の文からメールアドレスの...
-
php で1から100までの素数の表...
-
PHPのセレクトボックスの初期値...
-
file_existsでファイル名の部分...
-
PHPからCSVをアップロード後、m...
-
プルダウンメニューにDBの内容...
-
配列をループでたくさん宣言し...
-
【Smarty】foreach関数やsectio...
-
配列をファイルに書き込む方法
-
PHPにてクラスを配列にすること...
-
$_SESSIONに二次元配列を使える...
-
Resource id #3 と表示されま...
-
array_combineがうまくいかない...
-
別ファイルの構造体の値を読み...
-
foreachのなかで次のキーを参照...
-
PHPのカッコ[ ]の使い方について
-
PHP SimpleXml unsetについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングのPythonのnoteb...
-
C言語の配列をPush(追加)する...
-
php で1から100までの素数の表...
-
STLのvectorで作った配列をメン...
-
スカラーのベクトル微分
-
行列
-
Perlで重複行を削除したい
-
配列の要素(value)に、変数を...
-
特定の文からメールアドレスの...
-
forとかで連番の変数を一気に格...
-
C言語 最大値と最小値を求めて...
-
CArrayの要素としてCStringArra...
-
PHPでユニークIDを作る
-
fgetc関数について
-
読み(あ行~わ行)ごとに分け...
-
Pager::factory()の使い方がわ...
-
verilogで、配列の一部をタスク...
-
mallocで char *型の配列を確...
-
c言語 単位行列
-
連想配列で値が空だったら、要...
おすすめ情報