编程语言
首页 > 编程语言> > 帮助我使用usort()对这个php数组进行排序

帮助我使用usort()对这个php数组进行排序

作者:互联网

我有一个看起来像的数据结构

Array
(
[0] => Array
    (
        [0] => something
        [1] => 1296986500
    )

[1] => Array
    (
        [0] => something else
        [1] => 1296600100
    )

[2] => Array
    (
        [0] => another thing
        [1] => 1296831265
    )
)

我正在尝试基于unix时间戳的整数对数组进行排序.以下功能对我来说似乎不错,但未按我想要的方式排序.

function cmp($a, $b)
{
    if ($a[1] == $b[1]) {
        return 0;
    }
    return ($a[1] < $b[1]) ? -1 : 1;
}

注意
 在类中调用此函数时,OO语法如下

uasort($_data, array($this, 'cmp'));

解决方法:

这样可以将您的时间戳按升序排序;对于降序,翻转第二个比较(即,将$a [1]< $b [1]更改为$a [1]> $b [1]):

function cmp($a, $b)
{
    if ($a[1] == $b[1]) {
        return 0;
    }
    return ($a[1] > $b[1]) ? -1 : 1;
}

标签:usort,multidimensional-array,arrays,php,sorting
来源: https://codeday.me/bug/20191023/1913720.html