Smarty でキーにハイフンが含まれる連想配列のアクセス方法
が、わからなくて困っている。
{ $hash.key }
てな感じなんだけど、
キーにハイフンが入ってる場合、
PHPコード:
$hash['some-key'] = 'var';
Smarty テンプレート:
{ $hash.some-key }
と書くと、
<?php echo $this->_tpl_vars['hash']['some']-$this->_tpl_vars['ey']; ?>
とコンパイルされる。ハイフンがキー名として使えないのはわからんでもないが、k が消えたのが解せぬ。
ハイフン使うのダメなら、
{ $hash['some-key'] }
って書かせてよぉ。と、悶絶中。
どうしようかなぁ。キー名の変更はしたくない。DB の中身と と運用スクリプトを変更しないといけないので。うーん、何か方法があるはずだ。newbie だから見えてないだけのはずだ、きっと。
追記:
while ($dobj->fetch()) { $hash[str_replace("-", "_", $dobj->code)] = $dobj->name; }
結局キーを置換した。いいのかなぁ、こんなんで。