• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Smartyで添え字が全て文字列の多次元配列)

Smartyで添え字が全て文字列の多次元配列を表示する方法

このQ&Aのポイント
  • Smartyを使用して添え字が全て文字列の多次元配列を表示する方法について解説します。
  • 元データの内容が頻繁に変わるため、PHP側で加工してテンプレートはループで回す方法をご紹介します。
  • ご質問の内容によれば、以下のようにPHPとSmartyを組み合わせることで目的を達成できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.1

smartyをあまり使ったことがないので、 予測のレベルですが、こんな感じでいかがでしょうか。 {foreach from=$menu_list key="key1" item="item1" name="loop1"} <ul> <li>{$key1} <ul> {foreach from=$item1 key="key2" item="val2" name="loop2"} <li>{$key2}/{$val2}</li> {/foreach} </ul> </li> </ul> {/foreach} テンプレとスクリプトの分離をしない場合だと以下のような感じになるため。 <?php $menu_list = array( '魚' => array( 'サバ' => 'サバカレー', 'タイ' => 'タイカレー' ), '肉' => array( '豚肉' => 'ポークカレー', '牛肉' => 'ビーフカレー' ), '野菜' => array( 'キャベツ' => 'キャベツカレー', 'きゅうり' => 'きゅうりカレー' ) ); $all=""; foreach( $menu_list as $key1 => $val1 ){ // 1次元のループ $all = $all . "<ul>\n<li>" . $key1 . "\n<ul>\n"; foreach( $val1 as $key2 => $val2 ){ // 2次元のループ $all = $all . "<li>" . $key2. "/" . $val2 . "</li>\n"; } $all = $all . "</ul>\n</li>\n</ul>\n"; } print "$all"; ?>

yasagure-kun
質問者

お礼

いただきましたサンプルで、無事動作しました。 普通にPHPでforeachするように考えればいいんですね。 ありがとうございました。

yasagure-kun
質問者

補足

激しくどうでもいい追記。 最近、この手のちょっと考えればわかりそうな質問を連発してました。 皆様ごめんなさい。 海よりも深く反省。

その他の回答 (1)

  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.2

まったく問題なす。…という無駄な回答のほうが問題があったりして。。

yasagure-kun
質問者

お礼

ベストアンサーわっすれってたー。 コメありがとうございまする。

関連するQ&A

専門家に質問してみよう