获取最短阵列列的所有值

时间:2016-02-03 06:22:25

标签: php arrays

我有这个数组:

Array
(
    [0] => Array        // count 2 values
        (
            [0] => 3
            [1] => 1
        )

    [1] => Array        // count 2 values
        (
            [0] => 2
            [1] => 2
        )

    [2] => Array        // count 4 values
        (
            [0] => 1
            [1] => 1
            [2] => 1
            [3] => 1
        )

)

我希望获得最短列的所有值。在这种情况下:

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

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

)

我在此之前发布了此案例:How To Get ALL Minimum Value Within Multidimensional Array?

但遗憾的是,该案例使用的是关联数组。而在这种情况下,不是关联数组。

如何从这个数组中获取值?

1 个答案:

答案 0 :(得分:4)

首先获得所有子阵列的最小长度:

$min_length = min(array_map('count', $array));

然后过滤数组以获取具有该长度的元素:

$new_array = array_filter($array, function ($el) use ($min_length) {
    return count($el) == $min_length);
});
相关问题