0

如何按 DESC 顺序对内部数组键进行排序?

我可以按 DESC 顺序对 11、12 进行排序,arsort()但内部数组保持不变。我试过了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
        )
)
4

4 回答 4

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);
于 2012-11-06T12:37:04.970 回答
0

这应该工作

foreach ($arr as &$ar) { arsort($ar); }

http://codepad.org/ne2ldv9w

于 2012-11-06T12:41:28.460 回答
0

您可以尝试使用ksortArsort不会正确排序您的数组。

<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>
于 2012-11-06T12:57:49.693 回答
0

运行以下代码:

array_walk($array,'krsort');
于 2012-11-06T13:13:40.583 回答