如何在php

时间:2017-06-06 07:44:27

标签: php arrays list sorting

数组是这样的(我正在使用PHP)

array(2){[0]=>
             {[0]=>"DEF"=>
                       {[0]=>"a",[1]=>"c",[2]=>"b"},
              [1]=>"ABC"=>
                      {[0]=>"f",[1]=>"d",[2]=>"e"}},
        [1]=>
            {[0]=>"DEF"=>
                      {[0]=>"h",[1]=>"i",[2]=>"g"},
             [1]=>"ABC"=>
                      {[0]=>"k",[1]=>"l",[2]=>"j"}
            }
        }

我希望将它排序为第一个条目,即[0]索引有两个条目DEF和ABC,因此它应该排序ABC和DEF然后在ABC中也应该排序b。

最终结果应为此

array(2){[0]=>
             {[0]=>"ABC"=>
                       {[0]=>"d",[1]=>"e",[2]=>"f"},
              [1]=>"DEF"=>
                      {[0]=>"a",[1]=>"b",[2]=>"c"}},
        [1]=>
            {[0]=>"ABC"=>
                      {[0]=>"j",[1]=>"k",[2]=>"l"},
             [1]=>"DEF"=>
                      {[0]=>"g",[1]=>"h",[2]=>"i"}
            }
        }

提前致谢

2 个答案:

答案 0 :(得分:0)

PHP有一个自定义排序选项。试试这个: http://php.net/manual/en/function.usort.php

我没有使用它,但我之前已经找到它并记住它存在。

答案 1 :(得分:0)

使用sort将解决问题

   $a = array(
            array(
                 "ABC"=>array("d","e","f"),
                 "DEF"=>array("a","b","c")
                ),

           array(
                "ABC"=>array("j","k","l"),
                "DEF"=>array("g","h","i")
                )
           );

  sort($a);
  var_dump($a);

结果

array(2) {
  [0]=>
  array(2) {
    ["ABC"]=>
    array(3) {
      [0]=>
      string(1) "d"
      [1]=>
      string(1) "e"
      [2]=>
      string(1) "f"
    }
    ["DEF"]=>
    array(3) {
      [0]=>
      string(1) "a"
      [1]=>
      string(1) "b"
      [2]=>
      string(1) "c"
    }
  }
  [1]=>
  array(2) {
    ["ABC"]=>
    array(3) {
      [0]=>
      string(1) "j"
      [1]=>
      string(1) "k"
      [2]=>
      string(1) "l"
    }
    ["DEF"]=>
    array(3) {
      [0]=>
      string(1) "g"
      [1]=>
      string(1) "h"
      [2]=>
      string(1) "i"
    }
  }
}