2011-03-08 15 views
5

Próbuję użyć funkcji przez co widzę, jak wysoki (oś Y) a dwuwymiarowa tablica jest w PHP. Jak zasugerowałbyś, że to zrobię? Przepraszam, jestem nowy w PHP.PHP Array.length dla dwuwymiarowej tablicy (oś Y)

+0

@phihag daje bardzo eleganckie rozwiązanie ... nie ma naprawdę 2-wymiarowe tablice w PHP, The „tablica tablicy” może być dowolnej długości, więc trzeba by uzyskać największy wachlarz tablicy „”. – dianovich

Odpowiedz

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

Tak, naprawdę fajne rozwiązanie. – dianovich

+0

+1 Rozwiązanie to przypomina mi Matlab :) – Czechnology

+0

dzięki dużo @phihag – wingskush

0

Podsumowując drugi wymiar, należy count w pętli:

$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; 
} 

As możliwe jest posiadanie każdej tablicy/wektora o różnych wartościach ngth (w przeciwieństwie do macierzy matematycznej) musisz szukać maksimum. długość.

1
$max = 0; 

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

gdzie $ max liczba szukasz

1

Jeśli oś y jest zewnętrzną tablicą, wtedy naprawdę tylko count($array). Drugi wymiar będzie po prostu count($array[0]), jeśli jest jednolity.

3

Wielowymiarowy tablica jest po prostu tablica tablic - to nie jest tak, jak pan blokowane prostokątny zestaw adresów; bardziej jak pociąg, gdzie każdy samochód można ułożyć tak wysoko, jak chcesz.

Jako taki, „wysokość” tablicy przypuszczalnie jest liczbą aktualnie największy elementu układu. @phihag dał świetny sposób, aby to uzyskać (max(array_map(count, $array2d))), ale chcę tylko upewnić się, że rozumiesz, co to znaczy. Maksymalna wysokość różnych tablic w macierzy nadrzędnej nie ma wpływu na wielkość lub pojemność dowolnego elementu tablicy.

+0

Kiedy zaczynamy mówić o wymiary tablicy 2d, chciałbym zaproponować wystaje z matematycznym odpowiednikiem macierzy, gdzie wysokość -liczba rows- jest zwykle uważany za pierwszy wymiar i szerokość - numer kolumny - drugi. – Czechnology

0

W mojej aplikacji użyłem tego podejścia.

$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]; 
} 

wyjściowa: twofour

Prawdopodobnie nie jest najlepszym rozwiązaniem dla aplikacji, ale dla kopalni pracował idealnie.

Powiązane problemy