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

标签 php arrays sorting multidimensional-array usort

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

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;
}

关于php - 帮助我使用 usort() 对这个 php 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4911291/

相关文章:

c# - 根据另一个列表<>排序

ExpressionEngine 中的 PHP 和 FDPF 错误 'Fatal error: Call to a member function on a non-object'

php - PDO - 查询不返回结果

php - 使用php将多个文件上传到服务器而不是将所有文件上传到服务器

php - 如何从 PHP 中的数组中检索数据

c++ - 如何快速评估零集?

php - 将 ACF 字段添加到搜索结果页面 WordPress

java - 如何直接使用jni将字节数组从c复制到java byte[]属性

c++ - 合并两个数组中的唯一元素

c++ - 对成对的 vector 进行排序