我如何按desc顺序对内数键进行排序? 我可以用Arsort()按desc顺序排序11、12,但内部阵列保持不变。我尝试了Array_multisort(),USOUT()等,但没有运气。 $ array = [...

问题描述 投票:0回答:5

array_multisort()

,但没有运气。

usort()

    
您可以尝试使用
kort
$array = [ 11 => [ 4 => 'apr11timetable.php', 8 => 'aug11timetable.php', 6 => 'jun11timetable.php', 11 => 'nov11timetable.php', 10 => 'oct11timetable.php' ], 12 => [ 4 => 'apr12timetable.php', 8 => 'aug12timetable.php', 2 => 'feb12timetable.php', 6 => 'jun12timetable.php', 10 => 'oct12timetable.php' ] ];

不会正确排序您的数组。
Arsort
php arrays sorting multidimensional-array
5个回答

0
投票
我假设没有简单的功能可以实现这一目标,所以我想出了此代码:

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

运行以下代码:

arsort($file_list); foreach ($file_list as $key => $inner_array) { krsort($inner_array); $file_list[$key] = $inner_array; } echo '<pre>'; print_r($file_list);

0
投票

最简洁的是,在父级上致电
array_walk($array,'krsort');
,然后在每个子阵列上迭代

0
投票
调用。 demo

krsort()
warning:

0
投票
由于回调为

array_walk($array,'krsort');

的第二个参数中的回调中的密钥参数,因此不会提供可靠的结果。  为避免此错误,您必须明确声明回调参数并通过参考进行修改。
可以以相同的方式使用经典循环。 demo

array_walk()

尽管不需要递归的结构,而结构仅限于2个级别,但它对于1个或更多级别的阵列将起作用。 demo

krsort()
	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.