简体   繁体   English

如何对多维数组排序

[英]how to sort multidimensional array

I have the following array: 我有以下数组:

Array
(
[0] => Array
    (
        [days] => Wed
        [count] => 0
    )

[1] => Array
    (
        [days] => Tue
        [count] => 0
    )

[2] => Array
    (
        [days] => Mon
        [count] => 1
    )

[3] => Array
    (
        [days] => Sun
        [count] => 0
    )

And I want to sort it, so looks like this: 我想对其进行排序,因此如下所示:

Array
(
    [3] => Array
        (
            [days] => Sun
            [count] => 0
        )

    [2] => Array
        (
            [days] => Mon
            [count] => 1
        )

    [1] => Array
        (
            [days] => Tue
            [count] => 0
        )

    [0] => Array
        (
            [days] => Wed
            [count] => 0
        )

Can any one help me to do this? 谁能帮我做到这一点?

usort($myArray, function($a, $b) {
    return $a['days'] - $b['days']; // your operation for checking value 
});

Try a usort : If you are still on PHP 5.2 or earlier, you'll have to define a sorting function first: 尝试使用usort :如果您仍然使用PHP 5.2或更早版本,则必须首先定义一个排序函数:

function sortByOrder($a, $b) {
    return $a['days'] - $b['days'];
}

usort($myArray, 'sortByOrder');

Starting in PHP 5.3, you can use an anonymous function: 从PHP 5.3开始,您可以使用匿名函数:

usort($myArray, function($a, $b) {
    return $a['days'] - $b['days'];
});

And finally with PHP 7 you can use the "spaceship operator": 最后,在PHP 7中,您可以使用“太空飞船运营商”:

usort($myArray, function($a, $b) {
    return $a['days'] <=> $b['days'];
});
function compareOrder($a, $b)
    {
      return $a['days'] - $b['days'];
    }

    usort($array, 'compareOrder');

以下php函数可以帮助您:

bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )

May be this will help you 也许这会帮助你

usort($inputArray, function($first, $second) {
    return $first['days'] - $second['days']; 
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM