获取最短数组列的所有值


Get All of Value of the Shortest Array Column

我有这个数组:

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
        )
)

我之前在这里发布过这种情况: 如何在多维数组中获取所有最小值?

但不幸的是,这种情况使用的是关联数组。 而在这种情况下不是关联数组。

如何像这样从数组中获取值?

首先获取所有子数组的最小长度:

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

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

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