2016-12-01 398 views
3

我試圖在laravel 5.3中的刀片模板引擎中顯示數據。我有以下格式的二維陣列,同時在做DD($樹):如何迭代laravel blade模板引擎中的二維數組

array:6 [▼ 
    "class" => "Green" 
    "user_name" => "Nitish" 
    "user_loc" => "Delhi" 
    "user_id" => 1 
    "user_blockclass" => null 
    "child" => array:4 [▼ 
     0 => array:6 [▼ 
      "class" => "Green" 
      "user_name" => null 
      "user_loc" => null 
      "user_id" => 1 
      "user_blockclass" => "fst" 
      "child" => array:1 [▼ 
       0 => array:5 [▼ 
        0 => array:5 [▼ 
        "class" => "Green" 
        "user_name" => "pandey" 
        "user_loc" => "sdgfsjd" 
        "user_id" => 6 
        "user_blockclass" => "fst" 
        ] 
        1 => array:5 [▼ 
         "class" => "Green" 
         "user_name" => "chaku" 
         "user_loc" => "sdgjs" 
         "user_id" => 7 
         "user_blockclass" => "snd" 
        ] 
        2 => array:5 [▼ 
         "class" => "Green" 
         "user_name" => "iks" 
         "user_loc" => "sjkdfhkjs" 
         "user_id" => 8 
         "user_blockclass" => "trd" 
        ] 
       ] 
     ] 
] 
1 => array:6 [▶] 
2 => array:6 [▶] 
3 => array:6 [▶] 

我試圖獲取這個數據是這樣的:

<div class="tree-content"> 
<!-- Level 1 --> 
<div class="level-block"> 
    <div class="levels level-1"> 
     <span class="{{ $tree['class'] }}"><i class="fa fa-user"></i></span> 
     <div class="mem-info"> 
      <span class="bold">{{ $tree['user_name'] }}</span> 
      <span>{{ $tree['user_loc'] }}</span> 
      <span>ID: {{ $tree['user_id'] }}</span> 
     </div> 
    </div> 
</div> 
<!-- Level 2 --> 
<div class="level-block"> 
    <div class="levels level-2-m5"> 

     @foreach($tree['child'] as $child) 

      <div class="member-block {{ $child['user_blockclass'] }}"> 
       <span class="{{ $child['class'] }}"><i class="fa fa-user"></i></span> 
       <div class="mem-info"> 
        <span class="bold">{{ $child['user_name'] }}</span> 
        <span>{{ $child['user_loc'] }}</span> 
        <span>ID: {{ $child['user_id'] }}</span> 
       </div> 
      <!-- Level 3 Starts --> 
       <div class="level-block"> 
        <div class="levels level-3-m5"> 
        @foreach($child['child'] as $subchild) 

         <div class="member-block {{ $subchild['user_blockclass'] }}"> 
          <span class="{{ $subchild['class'] }}"><i class="fa fa-user"></i></span> 
          <div class="mem-info mem-hover"> 
           <span class="bold">{{ $subchild['user_name'] }}</span> 
           <span>ID {{ $subchild['user_id'] }}</span> 
           <a href="#">More Details</a> 
          </div> 
         </div> 

        @endforeach 
        </div> 
       </div> 
       <!-- Level 3 Ends here --> 
      </div> 

     @endforeach 
    </div> 
</div> 

我米無法取得的價值觀,我想我在迭代做錯了截至目前我得到的錯誤undefined index。幫幫我。由於

+0

嘗試做@foreach($孩子[ '孩子'] [0] $ subchild)......希望這個作品 –

回答

0

如果你看看這個:

 "child" => array:1 [▼ 
      0 => array:5 [▼ < -- subarray 
       0 => array:5 [▼ <-- sub-sub-arrays 
       "class" => "Green" 
       "user_name" => "pandey" 
       "user_loc" => "sdgfsjd" 
       "user_id" => 6 
       "user_blockclass" => "fst" 

這是在子子陣列。所以,你需要有您的輔助子陣列內增加一個額外的數組鍵

@foreach($child['child'][0] as $subchild) 
+0

是的,我在想同樣的方式。但是我有'$ child ['child'] [1]','$ child ['child'] [2]','$ child ['child'] [3]'等等。 $ subchild也有相同的模式。 –

2

要麼你將不得不使用一個更foreach循環,因爲如果有更多的孩子加入得到

 array:6 [▼ 
     "class" => "Green" 
     "user_name" => "Nitish" 
     "user_loc" => "Delhi" 
     "user_id" => 1 
     "user_blockclass" => null 
     "child" => array:4 [▼<-- Using $tree['child'] 
      0 => array:6 [▼ 
       "class" => "Green" 
       "user_name" => null 
       "user_loc" => null 
       "user_id" => 1 
       "user_blockclass" => "fst" 
       "child" => array:1 [▼<-- Using $child['child'] 
        0 => array:5 [▼<-- If this index increase You'll need one more foreach else @foreach($child['child'][0] as $subchild) 
this should work 
         0 => array:5 [▼ 
         "class" => "Green" 
         "user_name" => "pandey" 
         "user_loc" => "sdgfsjd" 
         "user_id" => 6 
         "user_blockclass" => "fst" 
         ] 
         1 => array:5 [▼ 
          "class" => "Green" 
          "user_name" => "chaku" 
          "user_loc" => "sdgjs" 
          "user_id" => 7 
          "user_blockclass" => "snd" 
         ] 
         2 => array:5 [▼ 
          "class" => "Green" 
          "user_name" => "iks" 
          "user_loc" => "sjkdfhkjs" 
          "user_id" => 8 
          "user_blockclass" => "trd" 
         ] 
        ] 
      ] 
    ] 
    1 => array:6 [▶] 
    2 => array:6 [▶] 
    3 => array:6 [▶] 

或使用

@foreach($child['child'][0] as $subchild) 

希望這個作品

+0

請檢查它有另一個級別的數組,這僅適用於第一次迭代。 –

+0

請檢查我做的編輯..如果你仍然覺得我錯了,請讓我知道 –

+0

我有兩個foreach循環的HTML部分,但它仍然不訪問數據。我在第二個循環中嘗試了@foreach($ child ['child'] [0] as $ subchild)',但它顯示了偏移錯誤。 –