在第三级排序多维数组

时间:2012-10-29 20:44:10

标签: php arrays sorting multidimensional-array associative-array

在下面的数组中,您可以看到'listElemId'的顺序与数组中的三个第一个元素不同。我想要的是它们的顺序(listElem 1,2,3)。 “listElemPoints”当然应该遵循。

如何实现这一目标?

提前致谢!

$listArray {
  [0] {
      [0] {
          ["listElemId"] = 2    // <- should be 1
          ["listElemPoints"] = 1 }
      [1] {
          ["listElemId"] = 3    // <- should be 2
          ["listElemPoints"] = 2 }
      [2] {
        ["listElemId"] = 1      // <- should be 3
        ["listElemPoints"] = 3 }
      }
  [1] {
      [0] {
          ["listElemId"] = 3    // <- should be 1
          ["listElemPoints"] = 1 }
      [1] {
          ["listElemId"] = 2    // <- correct
          ["listElemPoints"] = 2 }
      [2] {
          ["listElemId"] = 1    // <- should be 3
          ["listElemPoints"] = 3 }
      }
  [2] {
      [0] {
          ["listElemId"] = 3    // <- should be 1
          ["listElemPoints"] = 1 }
      [1] {
          ["listElemId"] = 1    // <- should be 2
          ["listElemPoints"] = 2 }
      [2] {
          ["listElemId"] = 2    // <- should be 3
          ["listElemPoints"] = 3 }
      }
}

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效(未经测试):

foreach ($listArray as &$arr) {
  uasort($arr, function($a, $b) {
    return $a['listElemId'] > $b['listElemId'];
  });
}