Menu

PHP Diziler: Oluşturma, Erişme, Döngü ve Yazdırma

PHP dizisi, her biri bir anahtar altında saklanan sıralı bir değer listesidir: $fruits = ['apple', 'banana']; $fruits[0] olarak okunur. Dizi oluşturmayı, elemanları okuyup değiştirmeyi, üzerlerinde dolaşmayı, yazdırmayı ve hangi dizi fonksiyonunu kullanacağınızı öğrenin.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Bir PHP dizisi değerlerin listesini anahtarlar altında saklar. Köşeli parantezle bir tane oluşturun, $fruits = ['apple', 'banana', 'cherry'];, ve bir elemanı indeksiyle okuyun, $fruits[0]. İndeksler 0'dan başlar ve count($fruits) eleman sayısını verir.

Her PHP dizisi sıralı bir eşlemedir: her değer bir anahtar altında durur. Anahtarları siz seçmezseniz PHP onları 0, 1, 2... olarak numaralar ve indisli bir dizi elde edersiniz. Onları kendiniz seçerseniz (['name' => 'Ada']) bir ilişkisel dizi elde edersiniz. İkisi de aynı array türüdür.

Dizi oluşturma

Köşeli parantez olağan söz dizimidir. array() eski yazımdır ve tam olarak aynı şeyi üretir. range() bir sayı veya harf listesi oluşturur, array_fill() ise tek bir değeri tekrarlar.

Bir PHP dizisi aynı anda farklı türlerde değerler tutabilir, başka diziler de dahil. Dizilerden oluşan bir dizi, veri satırlarını tutmanın olağan yolu olan bir çok boyutlu dizidir.

İlk ve son elemanı alma

PHP'de negatif indeks yoktur. $arr[-1] "sonuncu" anlamına gelmez: adı -1 olan bir anahtarı arar ve yoksa PHP Warning: Undefined array key -1 yazdırır. Anahtarlar 0'dan başlamadığında da çalışan array_key_first() ve array_key_last() kullanın.

end($queue) da son değeri döndürür, ama yan etki olarak dizinin iç işaretçisini hareket ettirir, bu yüzden anahtar tabanlı sürüm daha açık bir seçimdir.

Bir diziyi yazdırma

echo $arr çalışmaz: Array kelimesini ve bir uyarı yazdırır. İşe uygun çıktıyı seçin:

  • Hata ayıklarken okunur bir döküm için print_r($arr).
  • Her değerin türünü ve uzunluğunu da görmek için var_dump($arr).
  • Değerleri görüntülemek üzere tek bir dizgeye çevirmek için implode(', ', $arr).
  • Diziyi JavaScript'e veya bir API'ye göndermek için json_encode($arr).

print_r ve var_dump sayfası bir diziyi HTML içinde yazdırmak dahil biçimlendirme seçeneklerini anlatır.

Bir dizi üzerinde dolaşma

foreach diziler için yapılmış döngüdür: size her değeri, isterseniz anahtarı da verir. İndeksli bir for döngüsü de anahtarları boşluksuz 0'dan başlayan indisli dizilerde çalışır.

Diziler paylaşılmaz, kopyalanır

Bir diziyi başka bir değişkene atamak ya da bir fonksiyona aktarmak bir kopya verir. Kopyayı değiştirmek orijinali etkilemez. Bir fonksiyonun çağıranın dizisini değiştirmesi gerektiğinde parametreye & ekleyin.

Göreve göre dizi fonksiyonları

PHP 70'ten fazla dizi fonksiyonuyla gelir. En çok kullanacaklarınız şunlardır, her birinin kendi sayfası var:

GörevFonksiyon
Sona eklemearray_push() veya $arr[] =
Eleman sayısıcount()
Bir değerin var olup olmadığını kontrol etmein_array()
Bir değerin anahtarını bulmaarray_search()
Bir anahtarın var olup olmadığını kontrol etmearray_key_exists()
Dizileri birleştirmearray_merge()
Her değeri dönüştürmearray_map()
Bazı değerleri tutmaarray_filter()
Sıralamasort(), usort() ve benzerleri
Bir elemanı silmeunset(), array_splice()
Bir parça almaarray_slice()
Tekrarları kaldırmaarray_unique()
Dizgeden diziye ve geriexplode(), implode()

Sessizce birleşen anahtarlar

Dizi anahtarları ya tam sayı ya da dizgedir ve PHP bazı anahtarları sizin için dönüştürür. "1" gibi tam bir ondalık sayıya benzeyen dizge 1 tam sayısına dönüşür, bu yüzden $a["1"] ve $a[1] aynı yuvadır. "01" ve "1.5" dizge olarak kalır. Form girdisinden veya bir CSV'den oluşturulan bir dizinin beklediğinizden az elemanla sonuçlanabilmesinin nedeni budur.

Sıkça Sorulan Sorular

PHP'de nasıl dizi oluştururum?

Köşeli parantez kullanın: $colors = ['red', 'green', 'blue'];. Boş bir dizi $items = []; şeklindedir. Eski array('red', 'green') söz dizimi aynı işi yapar ve hâlâ çalışır.

PHP'de bir diziyi nasıl yazdırırım?

echo bir diziyi yazdıramaz (Array kelimesini ve bir uyarı yazdırır). Okunur bir döküm için print_r($arr), türleri de görmek için var_dump($arr), değerleri tek satırda yazdırmak için echo implode(', ', $arr) kullanın.

PHP'de bir dizinin son elemanını nasıl alırım?

$arr[array_key_last($arr)] (PHP 7.3+) veya end($arr) kullanın. PHP'de negatif indeks yoktur: $arr[-1] adı -1 olan bir anahtarı arar ve bu genellikle yoktur.

PHP dizileri değerle mi yoksa referansla mı aktarılır?

Değerle. $b = $a; $b değişkenine kendi kopyasını verir, bu yüzden $b değiştirildiğinde $a değişmez. Çağıranın dizisini bir fonksiyon içinde değiştirmek için parametreyi referans olarak tanımlayın: function add(array &$list).

PHP'de indisli dizi ile ilişkisel dizi arasındaki fark nedir?

İkisi aynı türdür. İndisli bir dizide PHP'nin sizin için atadığı 0, 1, 2... tam sayı anahtarları vardır; ilişkisel bir dizi ise sizin seçtiğiniz, genellikle 'name' gibi dizge anahtarları kullanır. Tek bir dizi ikisini bir arada bile kullanabilir.

Coddy programlama dilleri çizimi

Coddy ile kodlamayı öğren

BAŞLA