一尘不染

在PHP中排序多维数组?

php

我有这种数组

array(5) {
  [0]=>
  array(5) {
    [0]=>
    string(7) "jannala"
    [1]=>
    string(10) "2009-11-16"
    [2]=>
    string(29) "
            <p>Jotain mukavaa.</p>
        "
    [3]=>
    int(12)
    [4]=>
    int(1270929600)
  }
  [1]=>
  array(5) {
    [0]=>
    string(7) "jannala"
    [1]=>
    string(10) "2009-11-16"
    [2]=>
    string(51) "
            <p>Saapumiserä II/09 astuu palvelukseen</p>
        "
    [3]=>
    int(11)
    [4]=>
    int(1270929600)
  }
  ...
}

我需要做的是基于数组的[x] [4](Unix时间戳值)对数组进行排序。我将如何实现?


阅读 216

收藏
2020-05-26

共1个答案

一尘不染

使用比较函数,在这种情况下,它将比较数组的unix时间戳值:

function compare($x, $y) {
if ( $x[4] == $y[4] )
return 0;
else if ( $x[4] < $y[4] )
return -1;
else
return 1;
}

然后使用如下 usort函数调用它:

usort($nameOfArray, 'compare');

该函数将使用用户提供的比较函数按其值对数组进行排序。如果您希望排序的数组需要按照一些非平凡的条件进行排序,则应使用此函数。

取自 PHP:usort 手册。

2020-05-26