如何在多维数组中对列进行排序?

时间:2011-10-02 19:42:13

标签: php arrays sorting multidimensional-array

我想在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

1 个答案:

答案 0 :(得分:0)

多维数组排序由php中的此函数解析:

Array Multisort:
http://www.php.net/manual/en/function.array-multisort.php

作为高级提示,您可以通过设置要排序的女巫尺寸来扩展其使用范围,而将另一个留出。将输出更多地用作搜索数据的索引。

本手册可提供足够的信息以根据我们的需求试用此功能。但是,如果这不是您期望的结果,则需要创建自己的排序排序方法。然后你可以使用:

Usort:
http://www.php.net/manual/en/function.usort.php

Witch让您创建自己的排序方法。您甚至可以通过这种方式扩展多重排序。