获取最短阵列列的所有值

I have this array :

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
        )

)

and I want to get all of the value of the shortest column. in this case :

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

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

)

I post about this case before here : How To Get ALL Minimum Value Within Multidimensional Array?

but unfortunately that case was using associative array. while in this case isn't associative array.

how to get the value from array like this?

First get the minimum length of all the sub-arrays:

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

Then filter the array to get the elements that have that length:

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