如何在 laravel sql 中根據條件對數組進行排序以檢查最多 2 位數字
P粉060112396
P粉060112396 2023-09-08 12:13:31
0
1
485

在我的回覆中我得到

[
    {
        "id": 480,
        "HSN": 4808,
    },
    {
        "id": 575,
        "HSN": 5702,
    },
    {
        "id": 638,
        "HSN": 6301,
    },
    {
        "id": 765,
        "HSN": 7317,
    },
    {
        "id": 6626,
        "HSN": 47071000,
    },
    {
        "id": 6727,
        "HSN": 48081000,
    },
    {
        "id": 6728,
        "HSN": 48084010,
    }
]

但我希望我的回覆以某種方式排序,它檢查 HSN(基於 HSN 的前 2 位數字)並給我這樣的結果

[
    {
        "id": 6626,
        "HSN": 47071000,
    },
    {
        "id": 480,
        "HSN": 4808,
    },
    {
        "id": 6727,
        "HSN": 48081000,
    },
    {
        "id": 6728,
        "HSN": 48084010,
    },
    {
        "id": 575,
        "HSN": 5702,
    },
    {
        "id": 638,
        "HSN": 6301,
    },
    {
        "id": 765,
        "HSN": 7317,
    }
]

我嘗試過 sortBy 、排序方法,但它似乎對我不起作用,或者我以錯誤的方式執行此操作。 幫助我以正確的方式得到它

P粉060112396
P粉060112396

全部回覆(1)
P粉450079266

首先,您必須閱讀有關 usort 的文檔,並且strcmp

$data = [
    [
        "id" => 480,
        "HSN" => 4808,
    ],
    [
        "id"=> 575,
        "HSN"=> 5702,
    ],
    [
        "id"=> 638,
        "HSN"=> 6301,
    ],
    [
        "id"=> 765,
        "HSN"=> 7317,
    ],
    [
        "id"=> 6626,
        "HSN"=> 47071000,
    ],
    [
        "id"=> 6727,
        "HSN"=> 48081000,
    ],
    [
        "id"=> 6728,
        "HSN"=> 48084010,
    ]
];

usort($data, function($arr1, $arr2) {
    return strcmp($arr1['HSN'], $arr2['HSN']);
});

dd($data);

關於usort和strcmp的解釋也許你必須閱讀文檔 以便更深入地了解它。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板