因为单位商城的项目,所以最近又玩起了ecshop开源程序,做PHP的应该知道,Ecshop开源程序用的是smarty框架,用了许久的tk框架之后,突然觉得smarty生疏了许多,不过好在也是程序模板分离的,简单温习了一下之后就开始上手了,而最开始遇到的二维数组的循环问题。,先是在PHP层把数据库中的内容读取了出来,而这是一个二维数组,然后需要在模板层把这个内容给循环读取出来,查了一些资源,终于解决了,现把相关的代码给贴出来,这种 foreach 循环二维数组应用的还是比较广的,代码如下:,其实也是蛮简单的,就是把二维数组给循环出来,然后再读取内容,这里仅为一个实例,如果是读数据库的话,也是一样的。,

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

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

  1.  require_once './libs/Smarty.class.php';  
  2. // $title="你好";  
  3. $arr=array('a'=>'北京','b'=>'上海','c'=>'天津');  
  4. $arr1=array(array('哈尔滨','上海'),array('北京','天津'));  
  5. $arr2=array(array('a'=>'北京','b'=>'上海','c'=>'天津'),array('c'=>'c北京','d'=>'d上海','c'=>'天津'));  
  6. $emplist=array(array('id'=>100,'name'=>"小明","age"=>40),array("id"=>'110',"name"=>"大明","age"=>80),array("id"=>111,"name"=>"中明","age"=>60));  
  7.   
  8.  $smarty = new Smarty();  
  9.  $smarty->assign("arr",$arr);  
  10.  $smarty->assign("arr1",$arr1);  
  11.  $smarty->assign("arr2",$arr2);  
  12.   $smarty->assign("emplist",$emplist);  
  13.  $smarty->assign("if",5);  
  14.  $smarty->display("text.tpl");  
  15. ?>  
  16. .tpl 页面  
  17.   

  18. *从from中取出数组指向temp*


      
  19. {foreach from=$arr item=temp key=lx}  
  20. {$lx}={$temp}  
  21. {/foreach}  

  22. ***取出二维数组***


      
  23. {foreach from=$arr1  item=temp}  
  24. {foreach from=$temp item=val}  
  25.  {$val}  
  26. {/foreach}
      
  27. {/foreach}  
  28.   

  29. ***取出二维关联数组***


      
  30. {foreach from=$arr2  item=temp}  
  31. {foreach from=$temp item=val key=lx}  
  32.  {$lx}={$val}  
  33. {/foreach}
      
  34. {/foreach}  
  35.   
  36. {foreach from=$emplist  item=temp}  
  37. {foreach from=$temp item=val key=lx}  
  38. {if $lx!=age}  
  39.   
  40.  {$lx}={$val}  
  41.  {/if}  
  42. {/foreach}
      
  43. {/foreach}  
  44.   

  45. ***IF ELSE***


      
  46. {if $if>10}  
  47.  a>10  
  48. {else}  
  49.  a<10  
  50. {/if}  
  51.   
  52. {foreach from=$emplist  item=temp}  
  53. {if $temp.age<50}  
  54. 小孩{$temp.name}年龄为{$temp.age}
      
  55. {elseif 50<$temp.age&&$temp.age<70}  
  56. 青年朋友{$temp.name}年龄为{$temp.age}  
  57. {else}  
  58. 老年朋友{$temp.name}年龄为{$temp.age}
      
  59. {/if}  
  60.   
  61. {/foreach}  

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

,

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

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

  1.  require_once './libs/Smarty.class.php';  
  2. // $title="你好";  
  3. $arr=array('a'=>'北京','b'=>'上海','c'=>'天津');  
  4. $arr1=array(array('哈尔滨','上海'),array('北京','天津'));  
  5. $arr2=array(array('a'=>'北京','b'=>'上海','c'=>'天津'),array('c'=>'c北京','d'=>'d上海','c'=>'天津'));  
  6. $emplist=array(array('id'=>100,'name'=>"小明","age"=>40),array("id"=>'110',"name"=>"大明","age"=>80),array("id"=>111,"name"=>"中明","age"=>60));  
  7.   
  8.  $smarty = new Smarty();  
  9.  $smarty->assign("arr",$arr);  
  10.  $smarty->assign("arr1",$arr1);  
  11.  $smarty->assign("arr2",$arr2);  
  12.   $smarty->assign("emplist",$emplist);  
  13.  $smarty->assign("if",5);  
  14.  $smarty->display("text.tpl");  
  15. ?>  
  16. .tpl 页面  
  17.   

  18. *从from中取出数组指向temp*


      
  19. {foreach from=$arr item=temp key=lx}  
  20. {$lx}={$temp}  
  21. {/foreach}  

  22. ***取出二维数组***


      
  23. {foreach from=$arr1  item=temp}  
  24. {foreach from=$temp item=val}  
  25.  {$val}  
  26. {/foreach}
      
  27. {/foreach}  
  28.   

  29. ***取出二维关联数组***


      
  30. {foreach from=$arr2  item=temp}  
  31. {foreach from=$temp item=val key=lx}  
  32.  {$lx}={$val}  
  33. {/foreach}
      
  34. {/foreach}  
  35.   
  36. {foreach from=$emplist  item=temp}  
  37. {foreach from=$temp item=val key=lx}  
  38. {if $lx!=age}  
  39.   
  40.  {$lx}={$val}  
  41.  {/if}  
  42. {/foreach}
      
  43. {/foreach}  
  44.   

  45. ***IF ELSE***


      
  46. {if $if>10}  
  47.  a>10  
  48. {else}  
  49.  a<10  
  50. {/if}  
  51.   
  52. {foreach from=$emplist  item=temp}  
  53. {if $temp.age<50}  
  54. 小孩{$temp.name}年龄为{$temp.age}
      
  55. {elseif 50<$temp.age&&$temp.age<70}  
  56. 青年朋友{$temp.name}年龄为{$temp.age}  
  57. {else}  
  58. 老年朋友{$temp.name}年龄为{$temp.age}
      
  59. {/if}  
  60.   
  61. {/foreach}  

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

最后修改:2025 年 09 月 10 日
如果觉得我的文章对你有用,请随意夸赞