【问题标题】:PHP results not displayed in smarty templatePHP 结果未显示在 smarty 模板中
【发布时间】:2011-10-12 07:59:20
【问题描述】:

我有一个变量$my_arr,其var_dump($my_arr) 的值为

array(3) { [0]=> object(stdClass)#6 (9) { ["prod_index"]=> string(1) "1" ["prod_code"]=> string(4) "amp1" ["prod_name"]=> string(11) "Amplifier A" ["prod_price"]=> string(6) "100.00" ["frequency"]=> string(1) "2" ["gain"]=> string(1) "2" ["gain_variation"]=> string(3) "0.2" ["noise"]=> string(1) "2" ["power"]=> string(2) "10" } [1]=> object(stdClass)#7 (9) { ["prod_index"]=> string(1) "3" ["prod_code"]=> string(4) "amp1" ["prod_name"]=> string(13) "Amplifire1.33" ["prod_price"]=> string(6) "133.00" ["frequency"]=> string(4) "2.12" ["gain"]=> string(1) "2" ["gain_variation"]=> string(3) "0.2" ["noise"]=> string(1) "2" ["power"]=> string(2) "10" } [2]=> object(stdClass)#8 (9) { ["prod_index"]=> string(1) "4" ["prod_code"]=> string(4) "amp1" ["prod_name"]=> string(13) "Amplifier1.45" ["prod_price"]=> string(6) "150.00" ["frequency"]=> string(4) "2.99" ["gain"]=> string(1) "2" ["gain_variation"]=> string(3) "0.2" ["noise"]=> string(1) "2" ["power"]=> string(2) "10" } } 

在 smarty 中我试过了

{foreach name = fe1 item = k from = arr}
{$k->prod_index}    
{/foreach}

但它没有显示任何结果。

【问题讨论】:

  • 你是如何将该变量从 php 传递到模板的?
  • 不应该是from=$arr吗?据我所知,在 smarty 3 中,您可以使用类似 PHP 的语法:{foreach $arr as $k}
  • @Catalin 感谢 Catalin....感谢您指出我的愚蠢错误!
  • @SurajHazarika 没问题,很高兴我能帮上忙

标签: php foreach smarty


【解决方案1】:

假设您已经将数组分配给 smarty,例如:

$smarty->assign( "arr", $my_arr );

您需要使用“。”语法,如:

{foreach name = fe1 item = k from = arr}
{$k.prod_index}    
{/foreach}

【讨论】:

  • 他正在访问一个对象的属性而不是数组的键。不知道你是否可以同样访问它们......
  • 对象/数组没有“无缝”处理。对象需要 ->,数组需要。
  • @rodneyrehm 您还可以访问 PHP 中的数组 $arr['arrkey'] 或 $arr[arrkey]
  • 我很清楚这一点,谢谢。但你不能用对象,这是我打算回答的问题:)
  • 确实,抱歉,我没有注意到数组中的对象。
猜你喜欢
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
相关资源
最近更新 更多