首页 > 解决方案 > 按值对数组的数组进行排序

问题描述

如何按last_modified值对该数组进行排序?

array(1606) {
  [0]=>
  array(16) {
    ["name"]=>
    string(16) "La casa de papel"
    ["last_modified"]=>
    string(10) "1586198606"
  }
  [1]=>
  array(16) {
    ["name"]=>
    string(8) "Sintonia"
    ["last_modified"]=>
    string(10) "1586015522"
  }
  [2]=>
  array(16) {
    ["name"]=>
    string(10) "Outra Vida"
    ["last_modified"]=>
    string(10) "1608409121"
  }
  [3]=>
  array(16) {
    ["name"]=>
    string(15) "Law & Order: UK"
    ["last_modified"]=>
    string(10) "1619515436"
  }
}

目前,这是我的代码,没什么特别的:

$position = 0;
while ($position < count($arr)) {
    
    echo $arr[$position]["name"] . " - ";
    echo date('d/m/Y - H:i', $arr[$position]["last_modified"]) . "<br>\n";
    $position = $position + 1;

}

标签: phparrays

解决方案


usort()应该这样做:

usort($arr, function($a, $b){return $a['last_modified']<=>$b['last_modified'];});

要反转排序顺序,请反转传递给回调函数的参数的顺序。

演示:https ://3v4l.org/NPOu9

参考:usort()


推荐阅读