也许是愚钝,研究了一下午ecshop的使用。发现网上的信息很多都看不懂,不明了。总结一下我使用的foreach吧。
背景。我想将二维数组的按级别输出,原始数据如下
array(2) {
[1]=>
array(3) {
["cat_id"]=>
string(2) "11"
["attr_name"]=>
string(6) "价格"
["attr_values"]=>
array(5) {
[0]=>
string(11) "500-1500元"
[1]=>
string(12) "1500-2500元"
[2]=>
string(12) "2500-3500元"
[3]=>
string(12) "3500-4500元"
[4]=>
string(12) "4500-5500元"
}
}
[2]=>
array(3) {
["cat_id"]=>
string(2) "11"
["attr_name"]=>
string(6) "面积"
["attr_values"]=>
array(4) {
[0]=>
string(12) "10㎡以下
"
[1]=>
string(9) "10~30㎡
"
[2]=>
string(9) "30~50㎡
"
[3]=>
string(8) "50~70㎡"
}
}
最终效果
最后的foreach语句(不完整,只是说明意思)
<!--{foreach from=$arrtibute item=goods}-->
<dt>{$goods.attr_name}:</dt>
<dd class="select-all selected"><a href="javascript:void(null)">全部</a></dd>
<!--{foreach from=$goods.attr_values item=cat key=key}-->
<dd><a href="javascript:void(null)">{$cat}</a></dd>
<!--{/foreach}-->
</dl>
<!--{/foreach}-->
foreach 中常用的几个参数,from item key 等。
from后面就是 php中assign过来的数组的数组名,例如$arrtibute 。
item是相当于$arrtibute的一个别名,起名goods。如果调用数组中相应的健,例如‘attr_name’那就直接{$goods.attr_name},ecshop的索引是自动增加的。不用像普通数组写a[1],a[2],当然如果想制定某一个元素也可以这样用。
key数组索引值,在遍历过程中没啥用,自动增加。但是要调用某一个元素还是有用的。