smartyの{section}関数に渡す配列は0から順番になってないと表示されない 今見た感じバージョンはSmarty 2.6.18だけど。 以下のような{section}を使ったループ表示で、
{section name=key loop=$message}
 {$message[key]|escape}<br />
{/section}
php側を、
$message = array('123','456','abc');

$o_smarty -> assign("message", $message);
とすると、ちゃんと表示されるが、
$message[3] = '123';
$message[7] = '456';
$message[] = 'abc';

$o_smarty -> assign("emes", $emes);
とすると、何も表示されない。 悩まず、{foreach}に変更すべし。