1. 程式人生 > 實用技巧 >ThinkPHP 中對 volist 標籤巢狀使用可實現多維陣列的輸出。

ThinkPHP 中對 volist 標籤巢狀使用可實現多維陣列的輸出。

本文例項講述了ThinkPHP模板Volist標籤巢狀迴圈輸出多維陣列的方法。分享給大家供大家參考,具體如下:

ThinkPHP 中對 volist 標籤巢狀使用可實現多維陣列的輸出。

volist 巢狀使用

一般的二維陣列,可以用 volist 標籤直接迴圈輸出。對於多維陣列,則需要對其中的陣列成員再次使用 volist 標籤巢狀迴圈輸出。

構建一個多維陣列:

1 2 3 4 5 6 7 8 9 $food = array(); $food[0]['fruits'][0]['fruits1'] = '蘋果1'; $food[0]['fruits'][0]['fruits2'] =
'桔子1'; $food[0]['fruits'][0]['fruits3'] = '香蕉1'; $food[0]['vegetables'] = '白菜1'; $food[1]['fruits'][1]['fruits1'] = '蘋果2'; $food[1]['fruits'][1]['fruits2'] = '桔子2'; $food[1]['fruits'][1]['fruits3'] = '香蕉2'; $food[1]['vegetables'] = '白菜2';

使用 print_r() 函式打印出該陣列如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Array ( [0] => Array ( [fruits] => Array ( [0] => Array ( [fruits1] => 蘋果1 [fruits2] => 桔子1 [fruits3] => 香蕉1 ) ) [vegetables] => 白菜1 ) [1] => Array ( [fruits] => Array ( [1] => Array ( [fruits1] => 蘋果2 [fruits2] => 桔子2 [fruits3] => 香蕉2 ) ) [vegetables] => 白菜2
) )

在對應模組操作(如Index/display)裡將變數賦值給模板,並將模板輸出:

1 2 $this->assign( "food", $food ); $this->display();

模板 Tpl/default/Index/display.html :

1 2 3 4 5 6 7 8 9 <p>食物品種:</p><br /> <volist name="food" id="vo"> <volist name="vo['fruits']" id="f"> <p>水果1:{$f['fruits1']}</p> <p>水果2:{$f['fruits2']}</p> <p>水果3:{$f['fruits3']}</p> </volist> <p>蔬菜:{$vo['vegetables']}</p><br /> </volist>

在模板裡面,首先將 $food 變數進行迴圈輸出。由於 $food 陣列的成員 fruits 也是一個數組,因此再對 $vo['fruits'] 變數進行迴圈輸出(注意沒有 $ 符號)。

輸出結果如下:

1 2 3 4 5 6 7 8 9 10 11 食物品種: 水果1:蘋果1 水果2:桔子1 水果3:香蕉1 蔬菜:白菜1 水果1:蘋果2 水果2:桔子2 水果3:香蕉2 蔬菜:白菜2

同理推之以此方法可以對更多維的陣列進行迴圈輸出。