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