【发布时间】:2014-01-05 12:16:45
【问题描述】:
非常基本的问题,但是我在 PHP.NET 上找不到答案。
我有以下数组:
Array (
[1] => Array
(
[1] => 4
[2] => 1
[3] => 5
[4] => 3
)
[2] => Array
(
[5] => 2
[6] => 8
[7] => 7
[8] => 6
)
[3] => Array
(
[9] => 10
[10] => 9
[11] => 12
[12] => 11
)
[4] => Array
(
[13] => 15
[14] => 16
[15] => 14
[16] => 13
)
)
我希望对数组进行重新排序,以便数组的第一个系列中的键号 3 成为第一个,然后从那里重新排序其余的,最终得到以下结果:
Array (
[3] => Array
(
[9] => 10
[10] => 9
[11] => 12
[12] => 11
)
[4] => Array
(
[13] => 15
[14] => 16
[15] => 14
[16] => 13
)
[1] => Array
(
[1] => 4
[2] => 1
[3] => 5
[4] => 3
)
[2] => Array
(
[5] => 2
[6] => 8
[7] => 7
[8] => 6
)
)
我正在寻找一种方法来执行此操作,以便我可以定义数组,然后是我需要排序的第一级键,然后它将以这种方式返回数组。
标准的 PHP 键似乎没有提供这样的功能,所以最好能够有一个单独的函数,例如 $newArray = reorder_array($array, $key);
我不需要对第二级进行任何排序,只需要最初的 4 个主/第一级数组部分。
非常感谢您的帮助,因为我已经在这个问题上坐了一段时间,但没有一个清晰而简单的解决方案。
【问题讨论】:
-
你试过asort()函数吗?
-
我无法理解您想要执行的排序逻辑,抱歉。请解释您想要实现的逻辑(例如:究竟是什么使元素上升或下降等)。
-
@Calimero 循环排序。
-
@safarov 知道了,谢谢。