如何使用php usort按最高值对多维数组进行排序? [重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

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

我的阵列是:

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);
});
php sorting multidimensional-array usort
1个回答
0
投票

$a中的$busort()是数组的第一级索引,也是数组。你应该得到currnetMonth$a$b指数

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的结果

© www.soinside.com 2019 - 2024. All rights reserved.