Count () Kullanarak PHP Dizi ögelerini Sayma

PHP, built-in() işlevi sayesinde dizi ögelerini saymayı kolaylaştırır. count () ögesi hem normal hem de çok boyutlu dizilerdeki ögeleri saymak için nasıl kullanacağını ve bir index () ve for döngüsünü kullanarak dizine alınmış bir dizinin tüm ögelerinde nasıl geçireceğinizi sizler için yazımızda açıkladık. Keyifli okumalar!

Count () Kullanarak PHP Dizi ögelerini Sayma

Genellikle bir dizinin kaç element içerdiğini bilmek faydalıdır. Bir dizideki ögelerin sayısını saymanın bazı genel nedenleri:

  • Daha sonra elemanlar arasında hareket etmek için bir for döngüsü kullanabilirsiniz.
  • Toplam öge sayısını kullanıcıya görüntületebilirsiniz (döndürülen arama sonuçlarının sayısı gibi). 
  • Dizideki değerlerin ortalamasını hesaplayabilirsiniz (array_sum () ile birlikte).

PHP, built-in() işlevi sayesinde dizi ögelerini saymayı kolaylaştırır. Bu derste, count () ögesini hem normal hem de çok boyutlu dizilerdeki ögeleri saymak için nasıl kullanacağınızı ve bir index () ve for döngüsünü kullanarak dizine alınmış bir dizinin tüm ögelerinde nasıl geçireceğinizi öğreneceksiniz.

Temel count() Kullanım
Count () kullanmak kolaydır. ögelerini saymak istediğiniz diziyi iletmeniz yeterlidir ve işlev dizideki ögelerin sayısını döndürür:
 

$directors = array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" );
// Displays "4"
echo count( $directors );

Yukarıdaki örnek, dizine alınmış bir dizideki ögeleri sayar, ancak bir ilişkisel diziyi de kolayca sayabilirsiniz:

$movie = array( "title" => "Rear Window",
                "director" => "Alfred Hitchcock",
                "year" => 1954,
                "minutes" => 112 );
// Displays "4"
echo count( $movie );

Count () ile Döngüler Arasında ve Döngüler İçin Hareket Etme
Endekslenmiş bir dizideki tüm ögeler arasında döngü oluşturmak için count () işlevini, döngüler ve dizi ögeleriyle çalışma hakkındaki bilgilerinizi kullanabilirsiniz:

$directors = array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" );
// Displays "Alfred Hitchcock, Stanley Kubrick, Martin Scorsese, Fritz Lang":
$totalElements = count( $directors );
for ( $i=0; $i < $totalElements; $i++ ) {
  echo $directors[$i];
  if ( $i < $totalElements -1 ) echo ", ";
}

Yukarıdaki kod ilk önce count () kullanarak toplam dizi elemanı okur ve sonucu (4) $ totalElements içine kaydeder. Daha sonra, her eleman dizini boyunca 0'dan $ totalElements - 1'e (yani 3) kadar dönerek ögenin değerini olduğu gibi gösterir. (İf ifadesi, sonuncusu hariç her bir ögeden sonra virgül ve boşluk görüntüler.)

count () kullanırken biraz dikkatli olmanız gerekir. PHP'de Diziler Oluşturma'da gördüğünüz gibi, PHP, dizine alınmış ve ilişkisel diziler arasında ayrım yapmaz ve sayısal dizi dizinlerinin de bitişik olması gerekmez. Aşağıdaki örneği düşünün:

error_reporting(E_ALL);
ini_set( 'display_errors', true );
$directors = array( 0 => "Alfred Hitchcock", 1 => "Stanley Kubrick", 2 => "Martin Scorsese", 39 => "Fritz Lang" );
// Displays "Alfred Hitchcock, Stanley Kubrick, Martin Scorsese,"
// and generates an "Undefined offset: 3" notice:
$totalElements = count( $directors );
for ( $i=0; $i < $totalElements; $i++ ) {
  echo $directors[$i];
  if ( $i < $totalElements -1 ) echo ", ";
}

Burada neler oluyor? Yukarıdaki örnek, dizi indekslerinin artık bitişik olmaması dışında, önceki ile aynıdır (0, 1, 2 ve 39). Ayrıca PHP'yi tarayıcıdaki tüm hataları gösterecek şekilde ayarladık. Kod, üç dizini içeren ögeyi okumaya çalıştığında, PHP “Tanımsız ofset” uyarısı oluşturur, çünkü bu dizine sahip bir öge yoktur.

Buradaki ders, count () - 1'in yalnızca dizi dizinleri bitişik olarak numaralandırıldığında dizideki son ögenin dizinine eşittir (örneğin, 0, 1, 2 ve 3). Neyse ki, bu genellikle indekslenmiş dizilerde geçerlidir.

Bir dizinin indekslerinin bitişik olup olmadığından emin değilseniz, dizinin ögelerinde dolaşmak için foreach gibi diğer PHP yapılarını kullanabilirsiniz.

Çok Boyutlu Dizileri Saymak

PHP'de, diziler oluşturmadaki çok boyutlu dizilere kısaca değindik. Temel olarak, çok boyutlu bir dizi, elemanları aynı zamanda dizileri olan bir dizidir.
Varsayılan olarak, count () yalnızca çok boyutlu bir dizinin en üst düzeyindeki ögeleri sayar. İşte bir örnek:

$movieInfo = array( "directors" => array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" ),
                    "movies" => array( "Rear Window", "2001", "Taxi Driver", "Metropolis" ) );
// Displays "2"
echo count( $movieInfo );

Yukarıdaki kod yalnızca üst seviye dizideki iki ögeyi sayar. ("directors" and "movies").
Çok boyutlu bir dizideki tüm ögeleri saymak istiyorsanız - yani, yalnızca üst düzey ögeler değil, dizideki tüm dizilerdeki ögeler - o zaman COUNT_RECURSIVE sabitini count () işlevine ikinci bir argüman olarak iletin:

$movieInfo = array( "directors" => array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" ),
                    "movies" => array( "Rear Window", "2001", "Taxi Driver", "Metropolis" ) );
// Displays "10"
echo count( $movieInfo, COUNT_RECURSIVE );

Yukarıdaki örnekte, count () ilk önce üst düzey dizideki 2 ögeyi sayar ("directors" and "movies"). Sonra iç içe geçmiş dizilerdeki 8 ögeyi de sayar ("Alfred Hitchcock", "Fritz Lang", ardından "Arka Pencere", "Metropolis"). Bu, toplamda 10 element ile sonuçlanır.

Bu makalede, bir dizideki ögelerin sayısını saymak için PHP’nin count () işlevini inceledik.

  • Bir dizideki ögeler arasında dolaşmak için  count () işlevi nasıl kullanılır?    
  • Bitişik olmayan indisli diziler için count() kullanırken dikkatli olunmalı
  • Çok boyutlu diziler ve count () kullanarak tüm elemanlarının nasıl sayılacağını birlikte gördük.

Diğer yazılarımızda görüşmek üzere :)