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

Wes*_*ght 0 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                                                                   "
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

cHa*_*Hao 6

您需要一个函数来对两个项进行排序,并对它们进行比较.

function sort_by_company($a, $b)
{
    return strcmp($a['COMPANY'], $b['COMPANY']);
}
Run Code Online (Sandbox Code Playgroud)

然后,使用usort函数.

usort($arr['DATASOURCE']['MEMBER'], 'sort_by_company');
Run Code Online (Sandbox Code Playgroud)