如何使用 php usort 按最大值对多维数组进行排序?

How to sort multidimensional array by highest value using php usort?

如何根据内部数组值降序对多维数组进行排序?

我的数组是:

array [
  0 => array [
    "name_TH" => "test"
    "currnetMonth" => 200.0
  ]
  1 => array [
    "name_TH" => "test2"
    "currnetMonth" => 3000.0
  ]
  2 => array [
    "name_TH" => "test3"
    "currnetMonth" => 1455.0
  ]
]

我尝试做类似的事情,但仍然不确定它如何与维数组一起工作

usort($data, function ($a, $b) {
  return dd($b);
});

$a$b中的usort()是数组的一级索引,也是数组。您应该在函数

中获得 $a$bcurrnetMonth 索引
usort($arr, function ($a, $b) {
    if ($b["currnetMonth"] == $a["currnetMonth"]) return 0;
    return $b["currnetMonth"] < $a["currnetMonth"] ? -1 : 1;
});

或一行写条件

usort($arr, function ($a, $b) {
    return ($b["currnetMonth"] == $a["currnetMonth"]) ? 0 : ($b["currnetMonth"] < $a["currnetMonth"]) ? -1 : 1;
});

检查结果 demo