首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP Volist 標籤嵌套循環輸出多維陣列技巧

     編輯:PHP 綜合知識

ThinkPHP 的 volist 標籤支援嵌套使用,可輕鬆處理多維陣列輸出。本文通過構建多維食物陣列實例,演示雙層嵌套循環的完整流程。

一、構建多維測試數據

$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 結構如下:

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
  )
)

二、控制器賦值

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

三、模板雙層嵌套循環

<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>

關鍵點:內層 name="vo['fruits']" 直接引用外層循環變量的子陣列,不加 $ 符號。

四、輸出結果

食物品種:
水果1:蘋果1
水果2:桔子1
水果3:香蕉1
蔬菜:白菜1
水果1:蘋果2
水果2:桔子2
水果3:香蕉2
蔬菜:白菜2

五、擴展到更多維度

同理可推導至三層、四層嵌套,只需逐層對陣列成員再次使用 volist 即可。

更多 ThinkPHP 技術請參考專題:《ThinkPHP 入門教程》、《ThinkPHP 常用方法總結》、《Smarty 模板入門基礎教程》及《PHP 模板技術總結》。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved