我预料到了这个:
$f[14][5] = array('');
$f[13][1] = array('');
$f[13][3] = array('');
$f[13][2] = array('');
$f[14][1] = array('');
$f[13][2] = array('');
$f[14][2] = array('');
$f[14][4] = array('');
$f[14][3] = array('');
$f[13][4] = array('');
$f[13][5] = array('');
krsort($f);
echo '<pre>';
print_r($f);
排序
14 5,
14 4,
14 3,
14 2,
14 1,
13 5,
13 4,
13 3,
13 2,
13 1
但事实并非如此。 不知怎的,第二个键没有排序。
实现这一目标的最优雅的简短方法是什么?
(以类似排序多维数组的方式调查usort:如果列包含子字符串则优先排序,然后按第二列排序但我找不到定位第二个键的方法)
krsort
即可按相反顺序对键进行排序。您还必须循环子数组来对它们进行排序,因为此函数不适用于多维数组。
krsort($f);
foreach ($f as &$v) {
krsort($v);
}
输出:
array (size=2)
14 =>
array (size=5)
5 =>
array (size=1)
0 => string '' (length=0)
4 =>
array (size=1)
0 => string '' (length=0)
3 =>
array (size=1)
0 => string '' (length=0)
2 =>
array (size=1)
0 => string '' (length=0)
1 =>
array (size=1)
0 => string '' (length=0)
13 => &
array (size=5)
5 =>
array (size=1)
0 => string '' (length=0)
4 =>
array (size=1)
0 => string '' (length=0)
3 =>
array (size=1)
0 => string '' (length=0)
2 =>
array (size=1)
0 => string '' (length=0)
1 =>
array (size=1)
0 => string '' (length=0)