【问题标题】:sorting array of array in laravel在laravel中对数组进行排序
【发布时间】:2020-01-30 16:59:12
【问题描述】:

我有一个数组,我想根据每个数组中的数字对其进行排序

[
    ["Plastic and cosmetic surgery",90],
    ["Dermatology surgery",121],
    ["Infertility",134],
    ["Gynecology surgery",191],
    ["Hair transplant",92],
    ["Bariatrics and weight loss surgery",117],
    ["Dentistry",88]
]

【问题讨论】:

标签: php arrays laravel sorting


【解决方案1】:

对此有一个惊人而简单的默认 laravel 解决方案。

$collection = collect([
        ["Plastic and cosmetic surgery",90],
        ["Dermatology surgery",121],
        ["Infertility",134],
        ["Gynecology surgery",191],
        ["Hair transplant",92],
        ["Bariatrics and weight loss surgery",117],
        ["Dentistry",88]
    ]);

        $sorted = $collection->sortBy(1);

        $data = $sorted->values()->all();
        dd($data);

输出

    array:7 [▼
  0 => array:2 [▼
    0 => "Dentistry"
    1 => 88
  ]
  1 => array:2 [▼
    0 => "Plastic and cosmetic surgery"
    1 => 90
  ]
  2 => array:2 [▼
    0 => "Hair transplant"
    1 => 92
  ]
  3 => array:2 [▼
    0 => "Bariatrics and weight loss surgery"
    1 => 117
  ]
  4 => array:2 [▼
    0 => "Dermatology surgery"
    1 => 121
  ]
  5 => array:2 [▼
    0 => "Infertility"
    1 => 134
  ]
  6 => array:2 [▼
    0 => "Gynecology surgery"
    1 => 191
  ]
]

您可以在documentation 中查看更多类似功能。我希望你会喜欢这个解决方案。

【讨论】:

    【解决方案2】:

    试试这个按数字排序值。

    输入

    $array = [
        ["Plastic and cosmetic surgery",90],
        ["Dermatology surgery",121],
        ["Infertility",134],
        ["Gynecology surgery",191],
        ["Hair transplant",92],
        ["Bariatrics and weight loss surgery",117],
        ["Dentistry",88]
    ];
    
    usort($array, 'sortByNumber');
    function sortByNumber($a, $b)
    {
        $a = $a[1];
        $b = $b[1];
    
        if ($a == $b) return 0;
        return ($a < $b) ? -1 : 1;
    }
    
    echo "<pre>";
    print_r($array);
    die;
    

    输出

    Array
    (
        [0] => Array
            (
                [0] => Dentistry
                [1] => 88
            )
    
        [1] => Array
            (
                [0] => Plastic and cosmetic surgery
                [1] => 90
            )
    
        [2] => Array
            (
                [0] => Hair transplant
                [1] => 92
            )
    
        [3] => Array
            (
                [0] => Bariatrics and weight loss surgery
                [1] => 117
            )
    
        [4] => Array
            (
                [0] => Dermatology surgery
                [1] => 121
            )
    
        [5] => Array
            (
                [0] => Infertility
                [1] => 134
            )
    
        [6] => Array
            (
                [0] => Gynecology surgery
                [1] => 191
            )
    
    )
    

    【讨论】:

      猜你喜欢
      • 2020-08-20
      • 2020-01-09
      • 2019-10-19
      • 2016-09-30
      • 2019-05-17
      • 2019-07-24
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多