【问题标题】:Dynamically display JSON object in descending order in blade template在刀片模板中按降序动态显示 JSON 对象
【发布时间】:2017-08-24 22:23:44
【问题描述】:

我正在尝试按降序显示一个 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

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

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

【问题讨论】:

  • 把它放在你的@foreach @php foreach($data['quilt_data_obj'] as $year=>$data) { krsort($data); $data['quilt_data_obj'][$year] = $data; } @endphp之前怎么样?
  • @Yolo 试过这个解决方案没有输出=/

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2020-08-21
    • 2014-07-04
    • 2014-09-04
    • 2017-09-27
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多