Laravel按JSON中的数据排序

时间:2019-06-19 06:25:40

标签: php laravel

比方说,我有一个Model,它输出的数据是3个模型:

someRotation

我将如何使用“收藏夹”按照transform.position的{​​{1}}对数据进行排序,以及谁拥有最多的数据。

4 个答案:

答案 0 :(得分:1)

Json主要用作发送数据的通用格式。

在Laravel中,您可以使用object轻松地将json对象转换为php数组。

object

您可以在此处将其转换为一个集合,以利用laravels集合功能。

array

在此之后,请查看https://laravel.com/docs/5.8/collections进行排序/过滤或对数组进行任何操作。

或者您可以使用纯PHP来解决此问题

json_decode()是您检索到的json

$phpArray = json_decode($json);

答案 1 :(得分:0)

查看此示例代码

<?php

    $json = '{
    "Message": "Done.",
    "Status": true,
    "InnerData": [
  {
     "id": 66,
     "name": "first",
     "distance": 74
  },
  {
     "id": 67,
     "name": "second",
     "distance": 153
  },
  {
     "id": 68,
     "name": "third",
     "distance": 172
  }
]
}';
$array = json_decode($json, true);
usort($array['InnerData'], function($a, $b) {
   return $a['distance'] <=> $b['distance'];
});

print_r($array);

希望对您有帮助。

谢谢。

答案 2 :(得分:0)

使用“。”是一种很好的清除方法。运算符。

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:
            v.setPressed(true);
            longPressView = v;
            handler.postDelayed(mLongPressed, ViewConfiguration.getLongPressTimeout());
            break;

        case MotionEvent.ACTION_UP:
            v.setPressed(false);
            click(v);
            handler.removeCallbacks(mLongPressed);
            longPressView = null;
            break;
    }
    return true;
}

答案 3 :(得分:0)

尝试一下 $ array = collect($ array)-> sortBy('data.qty')-> reverse()-> toArray();