2011-03-08 48 views
5

我想用一個函數來查看一個二維數組在PHP中有多高(y軸)。你會如何建議我這樣做?對不起,我是PHP新手。一個二維數組(y軸)的PHP Array.length

+0

@phihag給出了一個非常優雅的解決方案......在PHP中沒有真正的二維數組,'數組的數組'可以是任意長度,所以你必須得到最大的'數組數組'。 – dianovich

回答

23
max(array_map('count', $array2d)) 
+0

是真正好的解決方案。 – dianovich

+0

+1這個解決方案讓我想起了matlab :) – Czechnology

+0

非常感謝@phihag – wingskush

0

綜上所述第二維度,在一個循環中使用count

$counter = 0; 
foreach($var AS $value) { 
    $counter += count($value); 
} 

echo $counter; 
0

1.dimension:

count($arr); 

2.dimension:

function count2($arr) { 
    $dim = 0; 

    foreach ($arr as $v) { 
    if (count($v) > $dim) 
     $dim = count($v); 
    } 

    return $dim; 
} 

作爲每個數組/向量可以有不同的le ngth(不像數學矩陣),你必須尋找最大值。長度。

1
$max = 0; 

foreach($array as $val){ 
$max = (count($val)>$max?count($val):$max) 
} 

其中$ max是你正在尋找

1

計數如果y軸是外數組,然後真的只是count($array)。如果統一,第二個維度就是count($array[0])

3

多維數組只是一個數組的數組 - 它不像你已經阻止了一組矩形地址;更像是一輛列車,每輛車都可以像你喜歡的那樣堆放。

因此,陣列的「高度」,大概是當前最大的陣列成員的計數。 @phihag已經給出了一個很好的方法來獲得(max(array_map(count, $array2d))),但我只是想確定你明白它的含義。父數組中各種數組的最大高度對任何給定數組成員的大小或容量都沒有影響。

+0

當我們開始談論二維數組的尺寸時,我建議堅持數學等價的矩陣,其中高度 - 行數通常是考慮了第一個維度和寬度 - 列數 - 第二個。 – Czechnology

0

在我的應用程序中,我使用了這種方法。

$array = array(); 

$array[0][0] = "one"; 
$array[0][1] = "two"; 

$array[1][0] = "three"; 
$array[1][1] = "four"; 

for ($i=0; isset($array[$i][1]); $i++) { 
    echo $array[$i][1]; 
} 

輸出:twofour

可能,這不是你的應用程序的最佳方法,但對我的它完美地工作。