php - 如何在 Laravel Blade 模板引擎中迭代二维数组

标签 php laravel laravel-5.3 laravel-blade

我正在尝试在 laravel 5.3 中的 blade 模板引擎中显示数据。在执行 dd($tree) 时,我有一个以下格式的二维数组:

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 错误。帮帮我。谢谢

最佳答案

因为你在 Sub child 中有数组,所以你将不得不再使用一个 foreach 循环,因为如果添加了更多 child

     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)

希望这能行得通

关于php - 如何在 Laravel Blade 模板引擎中迭代二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40912749/

相关文章:

php - 尝试从 XML 中提取元素并将其放入数组中

php - MySQL 中看似不正确的时区转换(UTC 到 PST)

javascript - 运行 javascript 函数而不是从 Laravel 发布表单

php - 如何使用 Request $request 从 url 获取 id? (拉拉维尔 5.3)

mysql - 根据 whereHas 查询获取最高和最低数据

php - usort 不适用于 laravel 多维数组

php - Laravel如何使用查询生成器返回单列值

PHP:检查字符串是否包含软连字符并替换它

php - Laravel 模型/ View 关系

git - 为什么 sqlite3 不能在我的 homestead/Laravel 设置中工作?