基于子数组对对象内部的数组进行反向排序';s在PHP中的值


Reverse sorting array inside an object based on an subarray's value in PHP

我的对象看起来像这样:

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"
      }
    }
  }
}

如何根据子数组featuresstatusCode的值对数组drives进行排序,从最高数字到最低数字?

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

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

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