基于PHP中的子数组值反转对象内部的数组

时间:2016-05-04 08:25:19

标签: php arrays json sorting object

我的对象如下:

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

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

我需要保留此结构,我无法将statusCode放在Drive数组中。

1 个答案:

答案 0 :(得分:1)

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

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