简体   繁体   English

如何按升序或降序对 object 的数组进行排序

[英]how to sort array of object in asc or desc order

I have an array of object which created manually by be and I need to sort it in desc or asc order based on date.我有一个由 be 手动创建的 object 数组,我需要根据日期按 desc 或 asc 顺序对其进行排序。
First I have make it a collection, using collect function in php laravel.首先,我将它设为一个集合,在 php laravel 中使用 collect function。
I already tried sortBy and sortby desc but it does not work:我已经尝试过 sortBy 和 sortby desc 但它不起作用:

[
  {
    "id": 22,
    "date": "2022-03-24",
    "form_name": "cashbook",
    "description": "sed<br>asdas",
    "credit": 90,
    "debit": 0,
    "status": 1,
    "balance": 90
  },
  {
    "id": 28,
    "date": "2022-03-23",
    "form_name": "cashbook",
    "description": "sed<br>Check the To Do List Task if task due date/time is passed",
    "credit": 700,
    "debit": 0,
    "status": 1,
    "balance": 790
  },
  {
    "id": 29,
    "date": "2022-03-24",
    "form_name": "cashbook",
    "description": "sed<br>نقد رقم",
    "credit": 700,
    "debit": 0,
    "status": 1,
    "balance": 1490
  },
  {
    "id": 30,
    "date": "2022-03-24",
    "form_name": "cashbook",
    "description": "sed<br>نقد رقم",
    "credit": 0,
    "debit": 700,
    "status": 1,
    "balance": 790
  },
  {
    "id": 31,
    "date": "2022-03-24",
    "form_name": "cashbook",
    "description": "sed<br>نقد رقم",
    "credit": 700,
    "debit": 0,
    "status": 1,
    "balance": 1490
  },
  {
    "id": 14,
    "date": "2022-03-21",
    "form_name": "advance",
    "description": "sed<br>2000",
    "credit": 9090,
    "debit": 0,
    "status": 1,
    "balance": 10580
  },
  {
    "id": 18,
    "date": "2022-03-21",
    "form_name": "advance",
    "description": "sed<br>2000",
    "credit": 9090,
    "debit": 0,
    "status": 1,
    "balance": 19670
  },
  {
    "id": 98,
    "date": "2022-03-25",
    "form_name": "purchase",
    "description": "شلجم--توڑا--4<span class=\"backslash\">/</span>23--@lang(\"dashboard.vehicle_number\")--2532 LAS",
    "credit": 0,
    "debit": -44,
    "status": 1,
    "balance": 19626
  },
  {
    "id": 99,
    "date": "2022-03-25",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--3<span class=\"backslash\">/</span>9--@lang(\"dashboard.vehicle_number\")--2532 LAS",
    "credit": 335,
    "debit": 0,
    "status": 1,
    "balance": 19961
  },
  {
    "id": 100,
    "date": "2022-03-25",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--3<span class=\"backslash\">/</span>9--@lang(\"dashboard.vehicle_number\")--2532 LAS",
    "credit": 335,
    "debit": 0,
    "status": 1,
    "balance": 20296
  },
  {
    "id": 101,
    "date": "2022-03-25",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--90<span class=\"backslash\">/</span>90--@lang(\"dashboard.vehicle_number\")--2532 LAS",
    "credit": 18711,
    "debit": 0,
    "status": 1,
    "balance": 39007
  },
  {
    "id": 102,
    "date": "2022-03-25",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--90<span class=\"backslash\">/</span>90--@lang(\"dashboard.vehicle_number\")--2532 LAS",
    "credit": 18891,
    "debit": 0,
    "status": 1,
    "balance": 57898
  },
  {
    "id": 103,
    "date": "2022-03-25",
    "form_name": "purchase",
    "description": "sed<br>شلجم--توڑا--90<span class=\"backslash\">/</span>90--@lang(\"dashboard.vehicle_number\")--2532 LAS",
    "credit": 9459,
    "debit": 0,
    "status": 1,
    "balance": 67357
  },
  {
    "id": 104,
    "date": "2022-03-28",
    "form_name": "purchase",
    "description": "sed<br>شلجم--توڑا--50<span class=\"backslash\">/</span>90--@lang(\"dashboard.vehicle_number\")--abc",
    "credit": 5157,
    "debit": 0,
    "status": 1,
    "balance": 72514
  },
  {
    "id": 105,
    "date": "2022-03-28",
    "form_name": "purchase",
    "description": "sed<br>شلجم--توڑا--50<span class=\"backslash\">/</span>90--@lang(\"dashboard.vehicle_number\")--abc123",
    "credit": 5355,
    "debit": 0,
    "status": 1,
    "balance": 77869
  },
  {
    "id": 106,
    "date": "2022-03-28",
    "form_name": "purchase",
    "description": "کدو--توڑا--90<span class=\"backslash\">/</span>90",
    "credit": 18891,
    "debit": 0,
    "status": 1,
    "balance": 96760
  },
  {
    "id": 107,
    "date": "2022-03-28",
    "form_name": "purchase",
    "description": "کدو--توڑا--50<span class=\"backslash\">/</span>23",
    "credit": 6442,
    "debit": 0,
    "status": 1,
    "balance": 103202
  },
  {
    "id": 108,
    "date": "2022-03-28",
    "form_name": "purchase",
    "description": "sed<br>کدو--پیٹی--4<span class=\"backslash\">/</span>23",
    "credit": 155,
    "debit": 0,
    "status": 1,
    "balance": 103357
  },
  {
    "id": 109,
    "date": "2022-04-02",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--90<span class=\"backslash\">/</span>90--@lang(\"dashboard.vehicle_number\")--90",
    "credit": 18508,
    "debit": 0,
    "status": 1,
    "balance": 121865
  },
  {
    "id": 110,
    "date": "2022-04-25",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--90<span class=\"backslash\">/</span>180",
    "credit": 27292,
    "debit": 0,
    "status": 1,
    "balance": 149157
  },
  {
    "id": 116,
    "date": "2022-04-28",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--90<span class=\"backslash\">/</span>23--@lang(\"dashboard.vehicle_number\")--mns-123",
    "credit": 11595,
    "debit": 0,
    "status": 1,
    "balance": 160752
  },
  {
    "id": 117,
    "date": "2022-04-28",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--90<span class=\"backslash\">/</span>23",
    "credit": 11595,
    "debit": 0,
    "status": 1,
    "balance": 172347
  },
  {
    "id": 119,
    "date": "2022-04-28",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--90<span class=\"backslash\">/</span>23",
    "credit": 0,
    "debit": -7455,
    "status": 1,
    "balance": 164892
  },
  {
    "id": 120,
    "date": "2022-07-21",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--من--100<span class=\"backslash\">/</span>50",
    "credit": 384,
    "debit": 0,
    "status": 1,
    "balance": 165276
  },
  {
    "id": 121,
    "date": "2022-07-22",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--من--50<span class=\"backslash\">/</span>150",
    "credit": 219,
    "debit": 0,
    "status": 1,
    "balance": 165495
  },
  {
    "id": 124,
    "date": "2022-07-22",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--من--80<span class=\"backslash\">/</span>120",
    "credit": 492,
    "debit": 0,
    "status": 1,
    "balance": 165987
  },
  {
    "id": 127,
    "date": "2022-07-22",
    "form_name": "purchase",
    "description": "sed<br>کدو--توڑا--50<span class=\"backslash\">/</span>100",
    "credit": 11100,
    "debit": 0,
    "status": 1,
    "balance": 177087
  },
  {
    "id": 101,
    "date": "2022-03-25",
    "form_name": "purchase",
    "description": "@lang(\"dashboard.buyer\")--jkj",
    "credit": "90",
    "debit": 0,
    "status": 1,
    "balance": 177177
  },
  {
    "id": 108,
    "date": "2022-03-28",
    "form_name": "purchase",
    "description": "@lang(\"dashboard.buyer\")--مزدوری",
    "credit": "90",
    "debit": 0,
    "status": 1,
    "balance": 177267
  },
  {
    "id": 108,
    "date": "2022-03-28",
    "form_name": "purchase",
    "description": "@lang(\"dashboard.buyer\")--sdsa",
    "credit": "90",
    "debit": 0,
    "status": 1,
    "balance": 177357
  },
  {
    "id": 109,
    "date": "2022-04-02",
    "form_name": "purchase",
    "description": "@lang(\"dashboard.buyer\")--opop",
    "credit": "9090",
    "debit": 0,
    "status": 1,
    "balance": 186447
  },
  {
    "id": 109,
    "date": "2022-04-02",
    "form_name": "purchase",
    "description": "@lang(\"dashboard.buyer\")--dsadsa",
    "credit": "9099",
    "debit": 0,
    "status": 1,
    "balance": 195546
  },
  {
    "id": 98,
    "date": "2022-03-25",
    "form_name": "purchase",
    "description": "@lang(\"dashboard.seller\")--mll",
    "credit": "90",
    "debit": 0,
    "status": 1,
    "balance": 195636
  },
  {
    "id": 110,
    "date": "2022-04-25",
    "form_name": "purchase",
    "description": "@lang(\"dashboard.seller\")--مزدوری",
    "credit": "500",
    "debit": 0,
    "status": 1,
    "balance": 196136
  },
  {
    "id": 13,
    "date": "2022-01-10",
    "form_name": "supplies",
    "description": "12<span class=\"backslash\">/</span>23--توڑا",
    "credit": 0,
    "debit": 2072,
    "status": 1,
    "balance": 194064
  },
  {
    "id": 22,
    "date": "2022-02-22",
    "form_name": "supplies",
    "description": "1<span class=\"backslash\">/</span>23--توڑا",
    "credit": 0,
    "debit": 87,
    "status": 1,
    "balance": 193977
  },
  {
    "id": 22,
    "date": "2022-02-22",
    "form_name": "supplies",
    "description": "@lang(\"dashboard.expense_by_customer\")--مزدوری",
    "credit": 0,
    "debit": 32,
    "status": 1,
    "balance": 193945
  },
  {
    "id": 54,
    "date": "2022-04-02",
    "form_name": "loot",
    "description": "@lang(\"dashboard.expensebycustomer\")--rent",
    "credit": "90",
    "debit": 0,
    "status": 1,
    "balance": 194035
  },
  {
    "id": 54,
    "date": "2022-04-02",
    "form_name": "loot",
    "description": "@lang(\"dashboard.expensebycustomer\")--mlklkl",
    "credit": "9090",
    "debit": 0,
    "status": 1,
    "balance": 203125
  },
  {
    "id": 54,
    "date": "2022-04-02",
    "form_name": "loot",
    "description": "@lang(\"dashboard.expensebycustomer\")--jkjkjk",
    "credit": "9090",
    "debit": 0,
    "status": 1,
    "balance": 212215
  },
  {
    "id": 13,
    "date": "2022-05-10",
    "form_name": "loading",
    "description": "@lang(\"dashboard.advance_payment\")--مزدوری",
    "credit": "90",
    "debit": 0,
    "status": 1,
    "balance": 212305
  },
  {
    "id": 14,
    "date": "2022-05-10",
    "form_name": "loading",
    "description": "@lang(\"dashboard.advance_payment\")--rent",
    "credit": "90",
    "debit": 0,
    "status": 1,
    "balance": 212395
  },
  {
    "id": 3,
    "date": "2022-05-17",
    "form_name": "sale",
    "description": "@lang(\"dashboard.add-lootWiseSales\")---کدو--1<span class=\"backslash\">/</span>121<br>کدو--1<span class=\"backslash\">/</span>122<br>",
    "credit": 0,
    "debit": "226",
    "status": 1,
    "balance": 212169
  },
  {
    "id": 7,
    "date": "2022-05-24",
    "form_name": "sale",
    "description": "@lang(\"dashboard.add-productWiseSales\")---کدو--4<span class=\"backslash\">/</span>4<br>شلجم--2<span class=\"backslash\">/</span>2<br>",
    "credit": 0,
    "debit": "542",
    "status": 1,
    "balance": 211627
  },
  {
    "id": 8,
    "date": "2022-05-24",
    "form_name": "sale",
    "description": "@lang(\"dashboard.add-productWiseSales\")---کدو--1<span class=\"backslash\">/</span>1<br>شلجم--1<span class=\"backslash\">/</span>1<br>",
    "credit": 0,
    "debit": "188",
    "status": 1,
    "balance": 211439
  },
  {
    "id": 9,
    "date": "2022-05-24",
    "form_name": "sale",
    "description": "@lang(\"dashboard.add-productWiseSales\")---کدو--4<span class=\"backslash\">/</span>4<br>شلجم--0<span class=\"backslash\">/</span>0<br>",
    "credit": 0,
    "debit": "433",
    "status": 1,
    "balance": 211006
  },
  {
    "id": 10,
    "date": "2022-05-26",
    "form_name": "sale",
    "description": "@lang(\"dashboard.add-productWiseSales\")---کدو--1<span class=\"backslash\">/</span>1<br>شلجم--1<span class=\"backslash\">/</span>1<br>",
    "credit": 0,
    "debit": "231",
    "status": 1,
    "balance": 210775
  },
  {
    "id": 7,
    "date": "2022-07-05",
    "form_name": "productIn",
    "description": "asa--شاپر--abc--",
    "credit": 650,
    "debit": 650,
    "status": 1,
    "balance": 210775
  },
  {
    "id": 9,
    "date": "2022-07-26",
    "form_name": "productIn",
    "description": "شلجم--شاپر--sdsa--کدو--شاپر--jkjjkjk--",
    "credit": 8100,
    "debit": 0,
    "status": 1,
    "balance": 218875
  },
  {
    "id": 9,
    "date": "2022-07-26",
    "form_name": "productIn",
    "description": "@lang(\"dashboard.expensebycustomer\")--asas",
    "credit": "90",
    "debit": 0,
    "status": 1,
    "balance": 218965
  },
  {
    "id": 18,
    "date": "2022-07-05",
    "form_name": "productInSale",
    "description": "asa--شاپر--شاپر--4<span class=\"backslash\">/</span>12121",
    "credit": 0,
    "debit": 54350,
    "status": 1,
    "balance": 164615
  },
  {
    "id": 26,
    "date": "2022-07-13",
    "form_name": "productInSale",
    "description": "مٹر--شاپر--شاپر--20<span class=\"backslash\">/</span>500",
    "credit": 0,
    "debit": 10240,
    "status": 1,
    "balance": 154375
  },
  {
    "id": 27,
    "date": "2022-07-26",
    "form_name": "productInSale",
    "description": "شلجم--شاپر--شاپر--10<span class=\"backslash\">/</span>300",
    "credit": 0,
    "debit": 3080,
    "status": 1,
    "balance": 151295
  },
  {
    "id": 28,
    "date": "2022-07-26",
    "form_name": "productInSale",
    "description": "کدو--شاپر--شاپر--5<span class=\"backslash\">/</span>1000",
    "credit": 0,
    "debit": 5275,
    "status": 1,
    "balance": 146020
  }
]

here is my array of object.这是我的 object 数组。

This should help: How to sort a JSON array with PHP这应该会有所帮助: 如何使用 PHP 对 JSON 数组进行排序

Below, $jsonArray is your array of JSON objects.下面, $jsonArray 是您的 JSON 对象数组。

$data = json_decode($jsonArray, false);
        
usort($data, function ($a, $b) {
    return $a->id <=> $b->id
});

Learn more about usort: https://www.php.net/manual/en/function.usort.php了解有关 usort 的更多信息: https://www.php.net/manual/en/function.usort.php

Learn more about spaceship operator:https://www.tutorialspoint.com/php7/php7_spaceship_operator.htm了解有关宇宙飞船操作员的更多信息:https://www.tutorialspoint.com/php7/php7_spaceship_operator.htm

Edits suggested by Timo have been made to this post蒂莫建议的编辑已对该帖子进行

$date = array_column($your_array_of_object, 'column name base on for sorting like date etc'); $date = array_column($your_array_of_object, '基于日期等排序的列名'); array_multisort($date, SORT_DESC, $your array of object); array_multisort($date, SORT_DESC, $你的对象数组);

this is worked at my side这是在我身边工作的

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM