A-A+

smarty读取PHP二维数组循环

2015年11月02日 PHP开源系统 评论 1 条 阅读 159 views 次

二维数组的循环在一般的 PHP 应用中应用得不是很多,但在一些应用购物的类似站点中,应用得就有点频繁了,比如购物站中,循环出每个大类 ID 里的商品,哪就需要用二维数组了,而在理解 php 二维数组中的一维数组时,显得有点挺繁琐的,而且不好理解,在PHP的二维数组循环中,可以直接用 section 循环即可,而 name 的值则是二维数组中的一维数组。

在 smarty 模板中读取 php 二维数组相对于直接在 php 中读取二维数组显得更复杂一些,因为在 smarty 模板中要进行参数传递,而且要利用 smarty 模板标签进行读取,下面是一个小实例,在 smarty 中读取 php 二维数组循环。

smarty 的安装就不介绍了,如果不会的可以到网上查询,在安装好 smarty,在其根目录下新建 test.php 文件,首先将 php 二维数组源码贴出来,然后传递给 test.html 文件进行读取。
<?php
include_once("inc/smarty.config.php");// 调用 smarty 配置文件
$shangpin1=array("id"=>"1","pid"=>"ID1","name"=>"name1");
$shangpin2=array("id"=>"2","pid"=>"ID1","name"=>"name2");
$shangpin3=array("id"=>"3","pid"=>"ID1","name"=>"name3");
$shangpin4=array("id"=>"4","pid"=>"ID2","name"=>"name4");
$shangpin5=array("id"=>"5","pid"=>"ID2","name"=>"name5");
$shangpin6=array("id"=>"6","pid"=>"ID3","name"=>"name6");
$shangpin7=array("id"=>"7","pid"=>"ID3","name"=>"name7");
$shangpin8=array("id"=>"8","pid"=>"ID3","name"=>"name8");
$shangpin9=array("id"=>"9","pid"=>"ID3","name"=>"name9");
$dalei1[]=$shangpin1;
$dalei1[]=$shangpin2;
$dalei1[]=$shangpin3;
$dalei2[]=$shangpin4;
$dalei2[]=$shangpin5;
$dalei3[]=$shangpin6;
$dalei3[]=$shangpin7;
$dalei3[]=$shangpin8;
$dalei3[]=$shangpin9;
$result_array[]=$dalei1;
$result_array[]=$dalei2;
$result_array[]=$dalei3;
var_dump($result_array);
$smarty->assign("result_array",$result_array);
/**
$result_array=
array(3) {
[0]=> array(3) {
[0]=> array(3) { ["id"]=> string(1) "1" ["pid"]=> string(3) "ID1" ["name"]=> string(5) "name1" }
[1]=> array(3) { ["id"]=> string(1) "2" ["pid"]=> string(3) "ID1" ["name"]=> string(5) "name2" }
[2]=> array(3) { ["id"]=> string(1) "3" ["pid"]=> string(3) "ID1" ["name"]=> string(5) "name3" }
}
[1]=> array(2) {
[0]=> array(3) { ["id"]=> string(1) "4" ["pid"]=> string(3) "ID2" ["name"]=> string(5) "name4" }
[1]=> array(3) { ["id"]=> string(1) "5" ["pid"]=> string(3) "ID2" ["name"]=> string(5) "name5" }
}
[2]=> array(4) {
[0]=> array(3) { ["id"]=> string(1) "6" ["pid"]=> string(3) "ID3" ["name"]=> string(5) "name6" }
[1]=> array(3) { ["id"]=> string(1) "7" ["pid"]=> string(3) "ID3" ["name"]=> string(5) "name7" }
[2]=> array(3) { ["id"]=> string(1) "8" ["pid"]=> string(3) "ID3" ["name"]=> string(5) "name8" }
[3]=> array(3) { ["id"]=> string(1) "9" ["pid"]=> string(3) "ID3" ["name"]=> string(5) "name9" }
}
}
*/
$smarty->display("test.html");// php 模板读取
?>
下面看一下 test.html 是如何读取 php二维数组循环的。
<{section name=pid_sec loop=$result_array}> <!--这里可以理解为pid_sec已经是一个二维数组中的一维数组了-->
<{$result_array[pid_sec][0].pid}>:<br> <!--大类ID-->
<{section name=id_sec loop=$result_array[pid_sec]}><!--循环出每个大类ID里的商品-->
<{$result_array[pid_sec][id_sec].id}>, <!--商品ID-->
<{$result_array[pid_sec][id_sec].name}>:<br> <!--商品名-->
<{/section}>
<{/section}>

标签:

1 条留言  访客:1 条  博主:0 条

  1. 御坂网络

    我只会while循环foreach循环,for都很少用.

给我留言