A-A+

smarty模板–foreach循环二维数组

2017年08月01日 PHP技术文章 暂无评论 阅读 0 views 次

因为单位商城的项目,所以最近又玩起了ecshop开源程序,做PHP的应该知道,Ecshop开源程序用的是smarty框架,用了许久的tk框架之后,突然觉得smarty生疏了许多,不过好在也是程序模板分离的,简单温习了一下之后就开始上手了,而最开始遇到的二维数组的循环问题。

先是在PHP层把数据库中的内容读取了出来,而这是一个二维数组,然后需要在模板层把这个内容给循环读取出来,查了一些资源,终于解决了,现把相关的代码给贴出来,这种 foreach 循环二维数组应用的还是比较广的,代码如下:

  1. <?php  
  2.  require_once './libs/Smarty.class.php';  
  3. // $title="你好";  
  4. $arr=array('a'=>'北京','b'=>'上海','c'=>'天津');  
  5. $arr1=array(array('哈尔滨','上海'),array('北京','天津'));  
  6. $arr2=array(array('a'=>'北京','b'=>'上海','c'=>'天津'),array('c'=>'c北京','d'=>'d上海','c'=>'天津'));  
  7. $emplist=array(array('id'=>100,'name'=>"小明","age"=>40),array("id"=>'110',"name"=>"大明","age"=>80),array("id"=>111,"name"=>"中明","age"=>60));  
  8.   
  9.  $smarty = new Smarty();  
  10.  $smarty->assign("arr",$arr);  
  11.  $smarty->assign("arr1",$arr1);  
  12.  $smarty->assign("arr2",$arr2);  
  13.   $smarty->assign("emplist",$emplist);  
  14.  $smarty->assign("if",5);  
  15.  $smarty->display("text.tpl");  
  16. ?>  
  17. .tpl 页面  
  18.   
  19. <br/><h1>*从from中取出数组指向temp*</h1><br/>  
  20. {foreach from=$arr item=temp key=lx}  
  21. {$lx}={$temp}  
  22. {/foreach}  
  23. <br/><h1>***取出二维数组***</h1><br/>  
  24. {foreach from=$arr1  item=temp}  
  25. {foreach from=$temp item=val}  
  26.  {$val}  
  27. {/foreach}<br/>  
  28. {/foreach}  
  29.   
  30. <br/><h1>***取出二维关联数组***</h1><br/>  
  31. {foreach from=$arr2  item=temp}  
  32. {foreach from=$temp item=val key=lx}  
  33.  {$lx}={$val}  
  34. {/foreach}<br/>  
  35. {/foreach}  
  36.   
  37. {foreach from=$emplist  item=temp}  
  38. {foreach from=$temp item=val key=lx}  
  39. {if $lx!=age}  
  40.   
  41.  {$lx}={$val}  
  42.  {/if}  
  43. {/foreach}<br/>  
  44. {/foreach}  
  45.   
  46. <br/><h1>***IF ELSE***</h1><br/>  
  47. {if $if>10}  
  48.  a>10  
  49. {else}  
  50.  a<10  
  51. {/if}  
  52.   
  53. {foreach from=$emplist  item=temp}  
  54. {if $temp.age<50}  
  55. 小孩{$temp.name}年龄为{$temp.age}<br/>  
  56. {elseif 50<$temp.age&&$temp.age<70}  
  57. 青年朋友{$temp.name}年龄为{$temp.age}  
  58. {else}  
  59. 老年朋友{$temp.name}年龄为{$temp.age}<br/>  
  60. {/if}  
  61.   
  62. {/foreach}  

其实也是蛮简单的,就是把二维数组给循环出来,然后再读取内容,这里仅为一个实例,如果是读数据库的话,也是一样的。

标签:

给我留言