如何在PHP中按第4级值对多维数组进行排序

时间:2010-04-20 09:06:06

标签: php arrays sorting multidimensional-array

我有一个从XML响应转换而来的数组。我需要做的是使用'COMPANY'值按字母顺序对数组进行排序。

我试图使用array_multisort,但我根本没有运气。任何帮助将不胜感激。

这是数组:

array(1) {
  ["DATASOURCE"]=>
  array(1) {
    ["MEMBER"]=>
    array(4) {
      [0]=>
      array(4) {
        ["REFNO"]=>
        string(6) "000762"
        ["STATUS"]=>
        string(5) "CURRE"
        ["DATE"]=>
        string(8) "20100731"
        ["COMPANY"]=>
        string(80) "Tresham Institute Business Solutions                                            "
      }
      [1]=>
      array(4) {
        ["REFNO"]=>
        string(6) "003721"
        ["STATUS"]=>
        string(5) "CURRE"
        ["DATE"]=>
        string(8) "20100930"
        ["COMPANY"]=>
        string(80) "Triad esign                                                                    "
      }
      [2]=>
      array(4) {
        ["REFNO"]=>
        string(6) "011412"
        ["STATUS"]=>
        string(5) "CURRE"
        ["DATE"]=>
        string(8) "20100630"
        ["COMPANY"]=>
        string(80) "Transpower Drives Ltd                                                           "
      }
      [3]=>
      array(4) {
        ["REFNO"]=>
        string(6) "059647"
        ["STATUS"]=>
        string(5) "CURRE"
        ["DATE"]=>
        string(8) "20100630"
        ["COMPANY"]=>
        string(80) "Trek-Kits Ltd                                                                   "
      }
    }
  }
}

2 个答案:

答案 0 :(得分:6)

您需要一个能够对两个项目进行排序并对它们进行比较的函数。

function sort_by_company($a, $b)
{
    return strcmp($a['COMPANY'], $b['COMPANY']);
}

然后,使用usort函数。

usort($arr['DATASOURCE']['MEMBER'], 'sort_by_company');

答案 1 :(得分:0)

您可以使用usort() PHP函数。