如何使用未知的JSON密钥名称作为我的表头

时间:2018-04-10 14:39:00

标签: php json laravel

我正在使用Laravel框架。

我有一个表格,其中包含一些我希望迭代的JSON,我已将表格转换为数组。这是格式;

{"Height": "#m", "Width": "#m", "Weight": {"now": "#kg", "previous": "#kg"}}

我的控制器返回视图;

$person = Person::find($ID);
$data = $person->tableJson;
return view('person.person_details', compact('person', 'data'));

在视图中:

@foreach ($data as $value)
    Width: {{ $value->tableJson['Width'] }} <br>
    Height: {{ $value->tableJson['Height'] }} <br>
    Weight (now): {{ $value->tableJson['Weight']['now'] }} <br>
    Weight (previous): {{ $value->tableJson['Weight']['previous'] }} <br> 
    <hr>
@endforeach

我有那个工作。问题是我想用JSON本身的键替换硬编码标题(宽度,高度等)。这样我就可以(希望)动态填充表而不知道JSON包含什么。

1 个答案:

答案 0 :(得分:1)

循环使用$data时使用实际密钥:

$data = [0: ["Height" => "#m", "Width" => "#m", "Weight" => ["now" => "#kg", "previous" => "#kg"]]];

foreach ($data as row) {
    foreach ($row as $header => $val) {
        if (is_string($val)) {
            echo "{$header}: {$val}<br/>";
        } else {
            foreach ($val as $type => $subVal) {
                echo "{$header} ($type): {$subVal}<br/>";
            }
        }
    }

    echo "<hr/>";
}