如何对多维数组的键进行排序?

时间:2018-05-24 12:34:02

标签: php sorting multidimensional-array

array(1) {
  [0]=>
  array(1) {
    ["12345"]=>
    array(1) {
      ["orange"]=>
      string(46) "test.jpg"
      ["blue"]=>
      string(46) "test2.jpg"
      ["green"]=>
      string(46) "test3.jpg"
    }
  }
}

我想按键排序:

foreach ($array as $key => $value) {
      if(is_array($value)){
           foreach ($value as $k => $v) {
                usort($v);
                foreach ($v as $fileIterator => $fileData) {
                     echo $fileIterator;
                }
           }
      }
 }

这是结果

orange
blue
green

但我希望订单是

blue
green
orange

1 个答案:

答案 0 :(得分:2)

试试这个, 您必须根据密钥进行排序,因此请使用ksort()。使用foreach()时,处理数组的副本。要在原始数组中进行更改,请使用'&'(通过引用调用)

foreach ($array as $key => $value) {
      if(is_array($value)){
           foreach ($value as $k => &$v) {
                ksort($v);
                foreach ($v as $fileIterator => $fileData) {
                     echo $fileIterator;
                }
           }
      }
 }