2011-03-08 16 views
5

İki boyutlu bir dizinin PHP'de ne kadar uzun (y ekseni) olduğunu görebileceğim bir işlev kullanmaya çalışıyorum. Bunu yaptığımı nasıl önerirsin? Üzgünüm, PHP'ye yeniyim.İki boyutlu bir dizi (y ekseni) için PHP Array.length

+0

@phihag çok zarif bir çözüm sunar ... PHP'de gerçekten 2 boyutlu diziler yoktur, 'dizinin dizisi' herhangi bir uzunlukta olabilir, bu yüzden en büyük dizi dizisini elde etmeniz gerekir. – dianovich

cevap

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

Evet, gerçekten güzel bir çözüm. – dianovich

+0

+1 Bu çözüm bana matlab'ı hatırlatıyor :) – Czechnology

+0

çok teşekkürler @phihag – wingskush

0

, ikinci boyut Özetle bir döngüde count kullanmak için:

$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 her dizi/vektör farklı le sahip olmak mümkündür ngth (matematiksel matrisin aksine) maks. uzunluğu. y ekseni, daha sonra gerçekten sadece count($array) dış dizisi ise $ max Eğer

1
$max = 0; 

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

. Tek tipse ikinci boyut sadece count($array[0]) olur.

1

aradığınız sayısıdır

3

Çok boyutlu bir dizi basitçe bir dizi dizidir - dikdörtgen bir adres kümesini engellemediyseniz; Her arabanın istediğin kadar yüksekte yığıldığı bir tren gibi. Bu haliyle, dizinin "yüksekliği" büyük ihtimalle, halihazırda en büyük dizi elemanının sayısıdır. @phihag bunu elde etmek için harika bir yol verdi (max(array_map(count, $array2d))) ama sadece ne anlama geldiğini anladığınızdan emin olmak istiyorum. Üst dizideki çeşitli dizilerin maksimum yüksekliğinin, herhangi bir dizi elemanının boyutu veya kapasitesi üzerinde hiçbir etkisi yoktur.

+0

2D dizinin boyutları hakkında konuşmaya başladığımızda, bir matrisin matematiksel eşdeğeriyle yapışmayı öneriyorum; İkinci boyut olarak ilk boyut ve genişlik - sütunların sayısı olarak kabul edilir. – Czechnology

0

Uygulamamda bu yaklaşımı kullandım.

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

çıkışı: TWOFOUR

Muhtemelen, bu uygulama için en iyi yaklaşım değildir, ancak mayın için mükemmel çalıştı.

İlgili konular