【问题标题】:Reverse sorting array inside an object based on an subarray's value in PHP基于PHP中子数组的值对对象内的数组进行反向排序
【发布时间】:2026-02-03 11:10:02
【问题描述】:

我的对象如下所示:

object(stdClass)#1 (1) {
  ["drives"]=>
  array(2) {
    [0]=>
    array(2) {
      ["drive"]=>
      string(11) "Drive1"
      ["features"]=>
      array(4) {
        ["statusCode"]=>
        int(1)
        ["UsedValue"]=>
        string(4) "222"
        ["TotalValue"]=>
        string(5) "22222"
        ["smart"]=>
        string(1) "0"
      }
    }
    [1]=>
    array(2) {
      ["drive"]=>
      string(5) "Drive2"
      ["features"]=>
      array(4) {
        ["statusCode"]=>
        int(0)
        ["UsedValue"]=>
        string(6) "2222"
        ["TotalValue"]=>
        string(7) "222222"
        ["smart"]=>
        string(1) "0"
      }
    }
  }
}

如何根据子数组features 内的statusCode 的值从最高到最低对数组drives 进行排序?

我需要保留这个结构,我不能把statusCode放到Drive数组中。

【问题讨论】:

标签: php arrays json sorting object


【解决方案1】:

在这种情况下使用uasort(保留键)功能:

// $obj is your initial stdClass object
uasort($obj->drives, function($a,$b){
    return $b['features']['statusCode'] - $a['features']['statusCode'];
});

【讨论】:

  • 非常感谢!完美运行:)
最近更新 更多