在PHP中按字母顺序排序数组,然后按数字排序?

在PHP中按字母顺序排序数组,然后按数字排序?,php,arrays,sorting,Php,Arrays,Sorting,参考这篇文章 这不能解决我的问题 我有一个数组名$test,如果打印($test)将显示 Array ( [0] => Array ( [hrid] => 1 [masterroom] => B4-G-3 ) [1] => Array ( [hrid] => 2 [masterroom] => B4-

参考这篇文章

这不能解决我的问题

我有一个数组名
$test
,如果
打印($test)
将显示

Array
(
    [0] => Array
        (
            [hrid] => 1
            [masterroom] => B4-G-3
        )

    [1] => Array
        (
            [hrid] => 2
            [masterroom] => B4-G-1
        )

    [2] => Array
        (
            [hrid] => 7
            [masterroom] => B4-1-2
        )

    [3] => Array
        (
            [hrid] => 8
            [masterroom] => B4-1-1
        )

    [4] => Array
        (
            [hrid] => 9
            [masterroom] => B4-1-10
        )

    [5] => Array
        (
            [hrid] => 10
            [masterroom] => B4-G-10
        )
)
我在下面尝试(参考上面链接的答案):

但我希望它是:

Array
(
    [0] => Array
        (
            [hrid] => 1
            [masterroom] => B4-G-1
        )

    [1] => Array
        (
            [hrid] => 2
            [masterroom] => B4-G-3
        )

    [2] => Array
        (
            [hrid] => 10
            [masterroom] => B4-G-10
        )

    [3] => Array
        (
            [hrid] => 7
            [masterroom] => B4-1-1
        )

    [4] => Array
        (
            [hrid] => 8
            [masterroom] => B4-1-2
        )

    [5] => Array
        (
            [hrid] => 9
            [masterroom] => B4-1-10
        )

)

谢谢。

您应该看看是否可以更新您的PHP。这应该从
5.5起生效

<?php

$array = [
  [
    "hrid" => 1,
    "masterroom" => "B4-G-3"
  ],
  [
    "hrid" => 2,
    "masterroom" => "B4-G-1"
  ],
  [
    "hrid" => 7,
    "masterroom" => "B4-1-2"
  ],
  [
    "hrid" => 8,
    "masterroom" => "B4-1-1"
  ], [
    "hrid" => 9,
    "masterroom" => "B4-1-10"
  ],
  [
    "hrid" => 10,
    "masterroom" => "B4-G-10"
  ]
];

$masterroom  = array_column($array, 'masterroom');
$hrid = array_column($array, 'hrid');

array_multisort($masterroom, SORT_NATURAL, $hrid, SORT_ASC, $array);

var_dump($array);

您应该看看是否可以更新PHP。这应该从
5.5起生效

<?php

$array = [
  [
    "hrid" => 1,
    "masterroom" => "B4-G-3"
  ],
  [
    "hrid" => 2,
    "masterroom" => "B4-G-1"
  ],
  [
    "hrid" => 7,
    "masterroom" => "B4-1-2"
  ],
  [
    "hrid" => 8,
    "masterroom" => "B4-1-1"
  ], [
    "hrid" => 9,
    "masterroom" => "B4-1-10"
  ],
  [
    "hrid" => 10,
    "masterroom" => "B4-G-10"
  ]
];

$masterroom  = array_column($array, 'masterroom');
$hrid = array_column($array, 'hrid');

array_multisort($masterroom, SORT_NATURAL, $hrid, SORT_ASC, $array);

var_dump($array);

意味着没有函数可以在5.2.8版php下工作?为pre 5添加了另一个示例。5@SweeHong您可能需要升级PHP。意味着没有函数可以在5.2.8版php下工作?为pre 5添加了另一个示例。5@SweeHong您可能需要升级PHP。在当前数据中,您拥有
[hrid]=>1[masterroom]=>B4-G-3
,在预期结果中,您拥有
[hrid]=>1[masterroom]=>B4-G-1
是否正确?在当前数据中,您拥有
[hrid]=>1[masterroom]=>B4-G-3
,并且在预期结果中存在
[hrid]=>1[主控室]=>B4-G-1
是否正确?
<?php

$array = [
  [
    "hrid" => 1,
    "masterroom" => "B4-G-3"
  ],
  [
    "hrid" => 2,
    "masterroom" => "B4-G-1"
  ],
  [
    "hrid" => 7,
    "masterroom" => "B4-1-2"
  ],
  [
    "hrid" => 8,
    "masterroom" => "B4-1-1"
  ], [
    "hrid" => 9,
    "masterroom" => "B4-1-10"
  ],
  [
    "hrid" => 10,
    "masterroom" => "B4-G-10"
  ]
];

$masterroom  = array_column($array, 'masterroom');
$hrid = array_column($array, 'hrid');

array_multisort($masterroom, SORT_NATURAL, $hrid, SORT_ASC, $array);

var_dump($array);