在刀片模板中以降序动态显示JSON对象

时间:2017-03-30 19:59:07

标签: php laravel laravel-5 blade laravel-blade

我正在尝试按降序显示一个JSON对象,该对象返回到我的刀片模板,应该看下面的输出

2007 | 30 | 28 | 5 | 2 | -10
2008 | 55 | 43 | 23 | 0.5 | -1

JSON看起来像这样

{
    "2007":{
        "number-xx" : "5",
        "number-aa" : "30",
        "number-ef" : "2",
        "number-sa" : "-10",
        "number-ab" : "28",
    },
    "2008":{
        "number-xx" : "-1",
        "number-aa" : "0.5",
        "number-ef" : "23",
        "number-sa" : "55",
        "number-ab" : "43",    
    }
}

到目前为止,我有类似的内容,如果我手动声明它们,则会显示年份和数字,因此我无法按降序顺序设置它。

@foreach ($data['quilt_data_obj'] as $year => $obj)
    {{ $year }} | {{ $obj['number-xx'] }} | {{ $obj['number-aa'] }} | {{ $obj['number-ef'] }} | {{ $obj['number-sa'] }} | {{ $obj['number-ab'] }}
@endforeach

但我只是不确定如何在我的刀片模板中按降序动态显示数字。

任何指导都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

在将JSON发送到刀片模板之前,请在控制器中对其进行修改:

$data = json_decode($json, true);
foreach($data as $key => &$arr) {
   natsort($arr);
   $arr = array_reverse($arr);
}

将以这种方式维护密钥。 Natsort将处理负数和小数,而数组反转将使其从最高到最低。