Maison  >  Questions et réponses  >  le corps du texte

Comment trier un tableau en fonction de la condition pour vérifier un maximum de 2 chiffres dans Laravel SQL

Dans ma réponse, je reçois

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

Mais je veux que ma réponse soit triée de manière à vérifier le HSN (en fonction des 2 premiers chiffres du HSN) et me donne un résultat comme celui-ci

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

J'ai essayé sortBy , la méthode de tri, mais cela ne semble pas fonctionner pour moi, ou je le fais mal. Aide-moi à faire les choses correctement

P粉060112396P粉060112396430 Il y a quelques jours480

répondre à tous(1)je répondrai

  • P粉450079266

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

    Vous devez d'abord lire la documentation sur usort et 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);

    Explication sur usort et strcmp, vous devrez peut-être lire la documentation pour le comprendre plus profondément.

    répondre
    0
  • Annulerrépondre