array

PHP'de bir dizi aslında sıralı bir eşlemdir. Bir eşlem, değerleri anahtarlarla ilişkilendiren bir veri türüdür. Bu veri türü farklı kullanım amaçları için en iyilenebilir; bir dizi, bir yöneysel liste, bir isim-değer çiftleri tablosu, bir sözlük, bir nesne listesi, yığıt, kuyruk ve daha bir sürü başka şey olarak ele alınabilir. Dizilerin değerleri, ağaçlar, diziler ve hatta çok boyutlu diziler bile olabilir.

Tüm bu veri yapılarının açıklanması bu kılavuzun amacını aşar. Fakat, en azından her biri için birer örnek verilebilir. Bu konuda daha fazla bilgi edinmek için bu konuyla ilgili olarak yayımlanmış eserleri inceleyiniz.

Sözdizimi

Bir dizinin array() ile belirtilmesi

Bir dizi array() işlevi kullanılarak belirtilebilir. Bağımsız değişken olarak, birbirlerinden virgüllerle ayrılmış çok sayıda anahtar => değer çifti alabilir.

array(
    anahtar  => değer,
    anahtar2 => değer2,
    anahtar3 => değer3,
    ...
)

Son dizi elemanından sonraki virgül seçimliktir ve konmayabilir. Bu genellikle tek satırlık dizilerde yapılır. Yani, array(1, 2, ) yerine array(1, 2) yazmak tercih edilir. Diğer taraftan, çok satırlı dizilerde yeni elemanların sona eklenmesini kolaylaştırdığından sondaki virgülün konulması tercih edilir.

Bilginize:

array() yerine [] kullanılan kısa bir dizi sözdizimi de vardır.

Örnek 1 - Basit bir dizi

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// Kısa dizi sözdizimi kullanımı
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

Bir anahtar ya int ya da string türünde olabilir. Bir değer ise herhangi bir türde olabilir.

Ek olarak anahtar için şu tür çarpıtmaları oluşur:

  • Geçerli onluk tamsayı içeren bir string + imi ile başlamadıkça int türüne çarpıtılır. Yani, "8" anahtarı aslında 8 olarak saklanır. Diğer yandan, "08" geçerli bir onluk tamsayı olmadığından tür çarpıtmasına uğramaz.

  • Float türler ondalık kısmı kırpılarak int türüne çarpıtılır. Yani, 8.7 anahtarı aslında 8 olarak saklanır.

  • Bool türler int türüne çarpıtılır. Yani true anahtarı 1, false anahtarı da