2016-02-03 106 views
1

的價值我有此數組:獲取所有的最短陣列列

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?

但不幸的是這種情況下,使用關聯數組。而在這種情況下不是關聯數組。

如何從像這樣的數組中獲取值?

+0

計數大小,並存儲它的鍵。 –

+0

你到目前爲止嘗試過的東西。發佈您的嘗試 –

+0

我的答案與您的其他問題的答案基本相同。唯一的區別是使用'count'而不是關聯數組的元素。如果你明白早先的答案如何工作,你怎麼能不能將它應用到修改的問題? – Barmar

回答

4

首先得到的所有子陣列的最小長度:

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

然後陣列過濾以獲得具有該長度的元素:每個子陣列的

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