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

Php 如何对多维数组的键进行排序?,php,sorting,multidimensional-array,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" } } } 这就是结果 f

我想按键对其进行排序:

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
试试这个, 您必须根据键进行排序,因此请使用
ksort()
。使用
foreach()
时,将处理数组的副本。为了在原始数组中进行更改,请使用
'&
(通过引用调用)


将此
$值更改为$k=>$v
$值更改为$k=>&$v
,并且
ksort()
不是
usort()
可能的重复项否这不是重复项。因为这个问题是对值进行排序,而不是对key@Jarla您将仅在最后对密钥进行排序。不是价值。该值本身是一个数组。可能与即将添加的@IncredibleHat重复。谢谢你指出这一点。!
blue
green
orange
foreach ($array as $key => $value) {
      if(is_array($value)){
           foreach ($value as $k => &$v) {
                ksort($v);
                foreach ($v as $fileIterator => $fileData) {
                     echo $fileIterator;
                }
           }
      }
 }