我想在smarty模板中打印以下名为$all_class_subjects
的数组:
Array
(
[4] => Array
(
[class_id] => 5
[class_name] => V
[class_order] => 0
[class_subject_assign] => 0
[class_added_date] => 1365837028
[class_updated_date] => 1365837028
[class_added_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
[class_updated_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
[sub_data] => Array
(
[0] => Chemistry
[1] => Mathematics
)
)
)
我正在尝试打印数组的代码(并非所有元素只有class_name,以及sub_data
数组中的主题名称):
{if $all_class_subjects}
{foreach from=$all_class_subjects item=class_subject_data}
<tr>
<td width="20%">{$class_subject_data.class_name|capitalize}</td>
<td width="40%">
{foreach from=class_subject_data.sub_data item=subject key=subject_name}
<b>{$subject.subject_name}</b>
<br />
{/foreach}
{/foreach} h
</td>
</tr>
但是我无法打印sub_data数组的主题名称。所以请告诉我们如何打印这些主题名称。请帮我打印那些主题名称,以及我自己管理的其他内容。提前谢谢。
答案 0 :(得分:2)
您可能有语法错误
{foreach from=class_subject_data.sub_data item=subject key=subject_name}
应该是($
似乎在class_subject_data.sub_data上丢失了):
{foreach from=$class_subject_data.sub_data item=subject key=subject_name}
在foreach循环下失败,请使用{$subject|@print_r}
查看您是否收到任何数据。在循环之前,查看您是否在多维数组{$class_subject_data.sub_data|@print_r}
中获取了任何数据。
当您调试它并且一切看起来都有效时,要打印值,请使用以下命令。 from
是数据数组,item
是数组的value
,key
是数组的键。希望这有帮助!
{foreach from=$class_subject_data.sub_data item=subject_name key=subject_key}
The subject is: {$subject_name} and the Key is {$subject_key}
smarty中的变量由{$variable_name}
定义。有关详细信息,请参阅the docs。