繁体   English   中英

按PHP中的值对多维数组排序

[英]Sorting multidimentional array by the value in PHP

在这里,我有一个多维数组,看起来像这样:

Array
(
    [1] => Array
        (
            [0] => 100
            [1] => a
        )

    [2] => Array
        (
            [0] => 1000
            [1] => b
        )

    [3] => Array
        (
            [0] => 50
            [1] => c
        )

    [4] => Array
        (
            [0] => 500
            [1] => d
        )

    [5] => Array
        (
            [0] => 1500
            [1] => e
        )

)

我想做的就是根据[0]值对数组进行排序,因此看起来像这样:

Array
(
    [1] => Array
        (
            [0] => 1500
            [1] => e
        )

    [2] => Array
        (
            [0] => 1000
            [1] => b
        )

    [3] => Array
        (
            [0] => 500
            [1] => d
        )

    [4] => Array
        (
            [0] => 100
            [1] => a
        )

    [5] => Array
        (
            [0] => 50
            [1] => c
        )

)

您对我打算做什么有什么建议? 提前致谢

最简单的方法是使用用户定义的函数进行排序:

<?php
$values = [
    1 => [100, 'a'],
    2 => [1000, 'b'],
    3 => [50, 'c'],
    4 => [500, 'd'],
    5 => [1500, 'e']
];

usort($values, function($a, $b){
    return $a[0] < $b[0];
});

var_dump($values);

输出显然是:

array(5) {
  [0] =>
  array(2) {
    [0] =>
    int(1500)
    [1] =>
    string(1) "e"
  }
  [1] =>
  array(2) {
    [0] =>
    int(1000)
    [1] =>
    string(1) "b"
  }
  [2] =>
  array(2) {
    [0] =>
    int(500)
    [1] =>
    string(1) "d"
  }
  [3] =>
  array(2) {
    [0] =>
    int(100)
    [1] =>
    string(1) "a"
  }
  [4] =>
  array(2) {
    [0] =>
    int(50)
    [1] =>
    string(1) "c"
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM