So sortieren Sie ein Array basierend auf der Bedingung, um maximal 2 Ziffern in Laravel SQL zu überprüfen
P粉060112396
P粉060112396 2023-09-08 12:13:31
0
1
499

In meiner Antwort bekomme ich

[
    {
        "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,
    }
]

Aber ich möchte, dass meine Antwort so sortiert wird, dass die HSN überprüft wird (basierend auf den ersten beiden Ziffern der HSN) und mir ein Ergebnis wie dieses liefert

[
    {
        "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,
    }
]

Ich habe sortBy ausprobiert, die Sortiermethode, aber sie scheint bei mir nicht zu funktionieren, oder ich mache es falsch. Hilf mir, es richtig zu machen

P粉060112396
P粉060112396

Antworte allen(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的解释也许你必须阅读文档 以便更深入地了解它。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage