如何按DESC顺序对内部数组键进行排序?
我可以使用arsort()
以DESC顺序对11,12进行排序,但内部数组保持不变。我尝试了array_multisort()
,usort()
和其他人,但没有运气。
Array
(
[11] => Array
(
[4] => apr11timetable.php
[8] => aug11timetable.php
[6] => jun11timetable.php
[11] => nov11timetable.php
[10] => oct11timetable.php
)
[12] => Array
(
[4] => apr12timetable.php
[8] => aug12timetable.php
[2] => feb12timetable.php
[6] => jun12timetable.php
[10] => oct12timetable.php
)
)
答案 0 :(得分:0)
我认为没有简单的功能可以完成,所以我想出了这个代码:
arsort($file_list);
foreach ($file_list as $key => $inner_array)
{
krsort($inner_array);
$file_list[$key] = $inner_array;
}
echo '<pre>'; print_r($file_list);
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以尝试使用ksort。 Arsort
不会正确排序您的数组。
<pre>
<?php
$array = Array(
11 => Array(
4 => 'apr11timetable.php',
8 => 'aug11timetable.php',
6 => 'jun11timetable.php',
11 => 'nov11timetable.php',
10 => 'oct11timetable.php'
),
12 => Array(
4 => 'apr12timetable.php',
8 => 'aug12timetable.php',
2 => 'feb12timetable.php',
6 => 'jun12timetable.php',
10 => 'oct12timetable.php'
)
);
krsort($array, SORT_NUMERIC);
foreach ($array as &$arr) {
krsort($arr, SORT_NUMERIC);
}
print_r($array);
?>
</pre>
答案 3 :(得分:0)
运行以下代码:
array_walk($array,'krsort');