PHP数组按项目数排序

时间:2021-03-31 21:19:02

标签: php arrays sorting

我需要根据内部数组中的元素数对数组进行排序。 这是我当前的数组。

Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
            [0] => 2-3
        )

    [2] => Array
        (
            [0] => 5-9
        )

    [3] => Array
        (
            [0] => 5-9
            [1] => 2-3
        )

)

我需要按这种格式对数组进行排序。

Array
(
[3] => Array
        (
            [0] => 5-9
            [1] => 2-3
        )

    [2] => Array
        (
            [0] => 5-9
        )

    [1] => Array
        (
            [0] => 2-3
        )

[0] => Array
        (
        )

)

2 个答案:

答案 0 :(得分:2)

这似乎做到了:

<?php

$a = [
   [], ['2-3'], ['5-9'], ['5-9', '2-3']
];

$f = fn ($b, $c) => count($c) <=> count($b);
usort($a, $f);
print_r($a);

https://php.net/function.usort

答案 1 :(得分:0)

希望这个回答对你有帮助

$result  = array();
$sorter  = array();
foreach($values as $key => $vals){
  $sorter[$key]= count($vals);
}
arsort($sorter);
foreach ($sorter as $ii => $va) {
  $result[$ii]=$values[$ii];
}

输出enter image description here