簡體   English   中英

PHP:按屬性對多維數組排序

[英]PHP: Sorting a multidimensional array by an attribute

我有一個多維數組,如下所示。 我想基於[date]屬性對第二級數組進行排序。 我相信我可以使用array_multisort,但不確定如何進行。

我的數組在變量$presentations

Array
(
    [0] => Array
        (
            [date] => 20111104
            [name] => Name of Presentation
        )

    [1] => Array
        (
            [date] => 20111118
            [name] => sadf
        )

    [2] => Array
        (
            [date] => 20100427
            [name] => older one
        )

    [3] => Array
        (
            [date] => 20101213
            [name] => Another one from 2010
        )

    [4] => Array
        (
            [date] => 20110719
            [name] => sdf
        )

    [5] => Array
        (
            [date] => 20110614
            [name] => Sixth one
        )

)

usort回調應根據情況返回3種類型的值:

  • 如果參數$a小於$b $a負數
  • 如果參數正數$b小於$a
  • 如果$a$b相等則為零
usort($presentations, function($a, $b)
{
    if($a['date'] == $b['date'])
    {
        return 0;
    }
    return $a['date'] < $b['date'] ? -1 : 1;
});

您可以使用usort()來應用自定義比較功能。

usort($presentations, 
      function ($left, $right) {
          return $left['date'] - $right['date'];
      });

這是一個字符串實現,由於類型變戲法,該實現在PHP中可用於整數:

usort($presentations, function($a, $b) {
    return strcmp($a['date'], $b['date']);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM