我不知道如何“排序”数组

时间:2011-09-22 16:59:13

标签: php arrays algorithm multidimensional-array

我有这个数组:

array(2) {
  [1]=>
  array(4) {
    ["name"]=>
    string(14) "Les Contenants"
    ["ordre"]=>
    string(1) "3"
    [9]=>
    array(1) {
      ["name"]=>
      string(20) "Corbeilles unitaires"
    }
    [10]=>
    array(1) {
      ["name"]=>
      string(6) "Mannes"
    }
  }
  [6]=>
  array(3) {
    ["name"]=>
    string(7) "L'utile"
    ["ordre"]=>
    string(1) "1"
    [133]=>
    array(3) {
      ["name"]=>
      string(7) "Paniers"
      [192]=>
      array(1) {
        ["name"]=>
        string(13) "à provisions"
      }
      [193]=>
      array(2) {
        ["name"]=>
        string(13) "anses mobiles"
        [201]=>
        array(1) {
          ["name"]=>
          string(19) "non doublés tissus"
        }
      }
    }
  }
}

我需要在这个键上排序这个数组:array [$ i] ['ordre']按升序排列。

结果必须是:

array(2) {
  [6]=>
  array(3) {
    ["name"]=>
    string(7) "L'utile"
    ["ordre"]=>
    string(1) "1"
    [133]=>
    array(3) {
      ["name"]=>
      string(7) "Paniers"
      [192]=>
      array(1) {
        ["name"]=>
        string(13) "à provisions"
      }
      [193]=>
      array(2) {
        ["name"]=>
        string(13) "anses mobiles"
        [201]=>
        array(1) {
          ["name"]=>
          string(19) "non doublés tissus"
        }
      }
    }
  }
  [1]=>
  array(4) {
    ["name"]=>
    string(14) "Les Contenants"
    ["ordre"]=>
    string(1) "3"
    [9]=>
    array(1) {
      ["name"]=>
      string(20) "Corbeilles unitaires"
    }
    [10]=>
    array(1) {
      ["name"]=>
      string(6) "Mannes"
    }
  }
}

你有想法吗?

2 个答案:

答案 0 :(得分:3)

usort($array,function($a,$b) {return $a['ordre']-$b['ordre'];});

或者,如果您的PHP版本不支持lambda函数:

usort($array,create_function('$a,$b','return $a["ordre"]-$b["ordre"];'));

答案 1 :(得分:0)

如果您想维护索引关联,请检查uasort