也許是愚鈍,研究了一下午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數組索引值,在遍歷過程中沒啥用,自動增加。但是要調用某一個元素還是有用的。