Smarty でキーにハイフンが含まれる連想配列のアクセス方法

が、わからなくて困っている。


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;
}

結局キーを置換した。いいのかなぁ、こんなんで。