对第4个元素进行排序,并在php中保持相同的键值


Sorting on 4th element and keep the same key value in php

我有如下多个数组结构

array (
  'Mexico' => 
  array (
    'Regular_Club' => 
    array (
      '2015-02' => 
      array (
        'cost' => 41479.8,
        'signups' => 3891,
        'share' => 16241.46,
      ),
    ),
    'Sweepstakes' => 
    array (
      '2015-02' => 
      array (
        'cost' => 1186736.04,
        'signups' => 280850,
        'share' => 468069.14,
      ),
    ),
  ),
)

我想根据字段开销降序排序这个数组。我试过单类、多类,但运气不好。结果如下:

Result: 
array (
  'Mexico' => 
  array (
   'Sweepstakes' => 
    array (
      '2015-02' => 
      array (
        'cost' => 1186736.04,
        'signups' => 280850,
        'share' => 468069.14,
      ),
    ),
    'Regular_Club' => 
    array (
      '2015-02' => 
      array (
        'cost' => 41479.8,
        'signups' => 3891,
        'share' => 16241.46,
      ),
    ),
  ),
)

在使用uksort之前收集成本:

foreach ($inputArray as $country => $array) {
  foreach( $array as $key => $value)
    foreach ($value as $val) $weight[$key] = (int) $val['cost'];
       uksort($array, function ($k1, $k2) use ($weight) { return $weight[$k2] - $weight[$k1]; });    
  $resultArray = array($country => $array);
} 
var_export($resultArray);