如何按 php 中的月份名称对多维数组进行排序

How to sort a multidimensional array by month names in php

我有一个包含月份的多维数组 names.I 想按月份名称排序,例如 jan.feb、march.I 尝试过 usort、multi_sort 等,但这些方法都没有能够缩短它们。所以为此寻找其他解决方案。

Array
(
    [0] => Array
        (
        [netDed] => 22128.00
        [netEran] => 91032.00
        [compiled_month] => Mar/2021
    )

[1] => Array
    (
        [netDed] => 22970.00
        [netEran] => 71330.00
        [compiled_month] => May/2021
    )

[2] => Array
    (
        [netDed] => 22970.00
        [netEran] => 71330.00
        [compiled_month] => Jun/2021
    )

[3] => Array
    (
        [netDed] => 65970.00
        [netEran] => 28330.00
        [compiled_month] => Jul/2021
    )

[4] => Array
    (
        [netDed] => 10396.00
        [netEran] => 27324.00
        [compiled_month] => Jan/2021
    )

[5] => Array
    (
        [netDed] => 20792.00
        [netEran] => 54648.00
        [compiled_month] => Feb/2021
    ))

谢谢! (提前)

一种方法,使用 usort() 和适当的比较函数是一种选择:

<?php
$array = array(
    array("netDe" => 22970.00, "netEran" => 71330.00, "compiled_month" => "May/2021"),
    array("netDe" => 22970.00, "netEran" => 71330.00, "compiled_month" => "Jun/2021"),
    array("netDe" => 65970.00, "netEran" => 28330.00, "compiled_month" => "Jul/2021"),
    array("netDe" => 10396.00, "netEran" => 27324.00, "compiled_month" => "Jan/2021"),
    array("netDe" => 20792.00, "netEran" => 54648.00, "compiled_month" => "Feb/2021" )
);

usort(
    $array, 
    function ($a, $b) {
       return 
          DateTime::createFromFormat('d/M/Y', "01/".$a["compiled_month"]) <=>
          DateTime::createFromFormat('d/M/Y', "01/".$b["compiled_month"]);
    }
);
?>