ThinkPHP 中對 volist 標籤巢狀使用可實現多維陣列的輸出。
阿新 • • 發佈:2020-12-29
本文例項講述了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
|
同理推之以此方法可以對更多維的陣列進行迴圈輸出。