我有这个数组数组
array (size=2)
'login' =>
array (size=3)
20 =>
array (size=1)
0 =>
object(File)[3]
10 =>
array (size=1)
0 =>
object(Database)[4]
5 =>
array (size=1)
0 =>
object(Closure)[5]
我正在尝试重新排序第二级数组中键的位置(它表示为20,10,5),因此结果应为
array (size=2)
'login' =>
array (size=3)
5 =>
array (size=1)
0 =>
object(File)[3]
10 =>
array (size=1)
0 =>
object(Database)[4]
20 =>
array (size=1)
0 =>
object(Closure)[5]
问题是我无法弄清楚如何做到这一点所以请帮助
答案 0 :(得分:1)
您可以查看Array Sorting,然后找出'ksort'是您的选择; - )
答案 1 :(得分:1)
你需要做
ksort($array['login']);
这将对数组键进行排序,使它们升序。如果你想让它们下降你会做
krsort($array['login']);
PHP有许多方便的函数来排序数组
答案 2 :(得分:0)
在二级数组上尝试PHPs ksort函数:http://php.net/ksort
它将按键对数组进行排序,同时保持key-data-associations
答案 3 :(得分:0)
PHP有a variety of array sorting functions。
在您的情况下,最合适的似乎是ksort()
,其概括如下:
按键对数组进行排序,保持数据关联的关键。
正如评论中所指出的,您的特定示例已经与所需顺序相反;如果可以保证,您也可以使用array_reverse()
,确保将$preserve_keys
参数作为true
传递。
具体来说,您想要使用键'login'
重新排序子数组;假设你的整个数组被称为$data
,你可能想写这个:
ksort($data['login']);
// note no need for an assignment, as PHP's sort functions act in-place
或者这个:
$data['login'] = array_reverse($data['login'], true);
// assign back to the original variable, as array_reverse() returns a new array