猿问

在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时间戳值)对数组进行排序。我将如何实现?


翻过高山走不出你
浏览 481回答 3
3回答

料青山看我应如是

使用比较函数,在这种情况下,它将比较数组的unix时间戳值:function compare($x, $y) {if ( $x[4] == $y[4] )return 0;else if ( $x[4] < $y[4] )return -1;elsereturn 1;}然后使用如下usort函数调用它:usort($nameOfArray, 'compare');该函数将使用用户提供的比较函数按其值对数组进行排序。如果您希望排序的数组需要按照一些非平凡的条件进行排序,则应使用此函数。取自PHP:usort手册。

慕虎7371278

我最初的想法是:将每个嵌套数组包装在一个对象(类的实例)中,以便一旦按特定字段排序(在本例中为unix时间戳),则可以使用相同的字段轻松访问其他信息对象参考。因此,嵌套的数组数组可能会成为对象数组,每个对象都有一个“ sort”方法。
随时随地看视频慕课网APP
我要回答