PHP'de Dizi Ögeleriyle Çalışma

PHP de dizi ögelerini kullanmak; öge değerlerini okuyabilmenizi, değişen eleman değerleri görmenizi, diziye öge eklemenizi ve kaldırmanızı sağlar. Bunlar dışındaki diğer faydalarını öğrenmek istiyorsanız, sizi yazımızda bekliyoruz!

PHP'de Dizi Ögeleriyle Çalışma

PHP'de diziler oluştururken, PHP dizilerinin nasıl çalıştığını öğrendiniz ve PHP kullanarak nasıl bir dizi oluşturulduğunu gördünüz.

Bu yazıda işleri daha ileri götürerek bir PHP dizisinin içindeki öğelere tek tek erişmeye bakacağız.. 
Aşağıda ki maddeleri bu yazıda göreceğiz:

  • Öge değerlerini oku
  • Değişen eleman değerleri
  • Diziye öge ekleme ve kaldırma
  • Bir dizinin tüm içeriğini çıktılar
  • Dizi elemanlarının okunması

Bir dizideki bir elemana erişmek için, dizi değişken ismini, ardından elementin dizinini köşeli parantez içinde yazınız:

$myArray[index]

Aşağıdaki örnek, bir dizideki 3. öğenin değerini görüntüler (dizi dizinlerinin sıfırdan başladığını unutmayın):
 

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

İlişkilendirilmiş diziler, sayısal bir dizge yerine dizge dizini kullanmanız dışında aynı şekilde çalışır:
 

$movie = array( "title" => "Rear Window",
                "director" => "Alfred Hitchcock",
                "year" => 1954 );
// Displays "Rear Window"
echo $movie["title"];

Öge Değerlerini Değiştirme
Bir dizi öğesine normal bir değişkenle aynı şekilde yeni bir değer atarsınız:

$myArray[index] = new value;

Aşağıdaki örnek, dizinin 3. öğesini “Martin Scorsese” den “Woody Allen” a değiştirmiştir:
 

$directors = array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" );
$directors[2] = "Woody Allen";

Öge Ekleme
Bunun gibi bir diziye yeni bir öğe ekleyebilirsiniz:

$myArray[] = value;

PHP otomatik olarak bir sonraki kullanılabilir sayısal dizini yeni öğeye atar. İşte bir örnek:

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

Ayrıca bir dizin de belirleyebilirsiniz. Dizide bu dizine sahip bir öge zaten varsa, değerin üzerine yazılır; Aksi takdirde, bu endekste yeni bir eleman yaratılır:

$directors = array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" );
$directors[4] = "Woody Allen";
// Displays "Woody Allen"
echo $directors[4];
$directors[2] = "Ingmar Bergman";
// Displays "Ingmar Bergman"
echo $directors[2];

Elemanların Kaldırılması

Bir ögeyi diziden kaldırmak için, elaman içinde geçen unset() çağrısını yaparsınız. (Bunları silmek için unset () işlevini normal değişkenlerde de kullanabilirsiniz.) İşte bir örnek:

$directors = array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" );
// Displays "Stanley Kubrick"
echo $directors[1];
unset( $directors[1] );
// Displays nothing (and generates an "Undefined offset" notice)
echo $directors[1];

Yukarıdaki son kod satırı, küçük bir hata olan “Tanımsız ofset” uyarısı oluşturur. Bu, mevcut olmayan bir dizi indeksine erişmeye çalıştığınız anlamına gelir. Normal olarak, PHP bildirimleri görüntülemez veya kaydetmez, ancak bunu error_reporting() işleviyle değiştirebilirsiniz.

unset (), dizin numaralandırmasında "boşluğu" kapatmak için dizileri otomatik olarak reindex yapmaz. Örneğin, yukarıdaki kodu çalıştırdıktan sonra, "Martin Scorsese" hala 2’lik bir dizine sahiptir ve "Fritz Lang" hala 3 indekslidir. Diziyi, dizinler tekrar bitişik olacak şekilde yeniden dizmek için array_values​​() işlevini kullanabilirsiniz. Örneğin;

$directors = array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" );
// Displays "Stanley Kubrick"
echo $directors[1] . "<br />";
unset( $directors[1] );
$directors = array_values( $directors );
// Displays "Martin Scorsese"
echo $directors[1] . "<br />";

Print_r () İle Bir Dizi Çıktılama
Bazen kodunuzda hata ayıklama yaparken bir dizinin tüm içeriğini incelemek yararlı olur. Ancak, bir dizide print() veya echo() kullanmak fazla yardımcı olmaz:

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

Dizinin tamamını görüntülemek için bunun yerine print_r () işlevini kullanın. Dizine eklenmiş bir diziyi ve bir ilişkisel diziyi oluşturan bir örnek, ardından print_r() işlevini kullanarak her iki dizinin içeriğini görüntüler:

$directors = array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" );
$movie = array( "title" => "Rear Window",
                "director" => "Alfred Hitchcock",
                "year" => 1954 );
echo '<h2>$directors:</h2><pre>';
print_r( $directors );
echo '</pre><h2>$movie:</h2><pre>';
print_r( $movie );
echo "</pre>";

 

Yukarıdaki kod aşağıdaki çıktıyı üretir:
 

$directors:
Array
(
    [0] => Alfred Hitchcock
    [1] => Stanley Kubrick
    [2] => Martin Scorsese
    [3] => Fritz Lang
)
$movie:
Array
(
    [title] => Rear Window
    [director] => Alfred Hitchcock
    [year] => 1954
)

Çıktıyı print_r() işlevinden göstermek yerine dize olarak döndürmek için, print_r() öğesine true değerine sahip ikinci bir argüman iletin.

  • Bu yazıda PHP'de dizi elemanlarının nasıl değiştirileceğini gördünüz. Öğe değerlerini oku ve değiştir
  • Öğeleri ekleme ve kaldırma (dizine dizilerin yeniden boyutlandırılması dahil) ve
  • Bir dizinin tüm içeriğini göster.

Gelecekteki yazılarda, bir kerede birden fazla dizi elemanı ile nasıl çalışacağımız, bir dizideki elemanları nasıl sayacağımız, diziler arasında nasıl döngü yapacağımızı ve çok daha fazlasını göreceğiz.