我想排序一个多维数组在php像你排序列在电子表格。我需要能够选择一个开始和停止列,并可选地,如果列的"子"得到排序。我不确定我应该如何正确地解释这一点,所以我尝试用一个例子。
我可以用标准的PHP函数做这个,还是我需要自己写?如果是后者,我希望现在有人能帮我做这件事。
-------------0------1-------2--- (dimensions)
$someArray[$col1][$col22][$col3];
col1 col2 col3:
a 1 w
c 5 x
b 2 y
d 3 z
unknownSortFunction($someArray, 0, 1, $link=0) // Sort col1 first and then col2 leave col3 (and any "childs") "linked" to column 2.
expected results:
col1 col2 col3
a 1 w
b 2 y
c 3 z
d 5 x
可选的,我希望能够排序不保持col3"链接"到col2,例如:
col1 col2 col3
a 1 w
b 2 x
c 3 y
d 5 z
多维数组排序由以下函数解析:
Array Multisort:
http://www.php.net/manual/en/function.array-multisort.php
作为高级提示,您可以通过设置要排序的维度来扩展它的使用,而将其他维度排除在外。使用输出更多作为索引来搜索您的数据。
手册可以提供足够的信息来根据我们的需要试用这个函数。但是,如果这不是您期望的结果,那么您需要创建自己的排序方法。然后你可以使用:
Usort:
http://www.php.net/manual/en/function.usort.php
Witch允许您创建自己的排序方法。您甚至可以这样扩展多重排序