suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So sortieren Sie ein Array basierend auf der Bedingung, um maximal 2 Ziffern in Laravel SQL zu überprüfen

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粉060112396P粉060112396533 Tage vor533

Antworte allen(1)Ich werde antworten

  • P粉450079266

    P粉4500792662023-09-09 10:42:03

    首先,您必须阅读有关 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的解释也许你必须阅读文档 以便更深入地了解它。

    Antwort
    0
  • StornierenAntwort