array_push($arr, $value) bir dizinin sonuna bir değer ekler. Tek bir değer için $arr[] = $value; kısayolu aynı işi fonksiyon çağrısı olmadan yapar ve PHP kodlarının çoğu bunu kullanır. İkisi de diziyi yerinde değiştirir.
array_push() diziyi referansla alır, bu yüzden verdiğiniz değişkeni değiştirir. Yeni eleman sayısını döndürür, bunu yok sayabilirsiniz.
array_push ile $arr[] = karşılaştırması
Tek bir değer için $arr[] = $value kullanın: daha kısadır ve büyük bir döngüde birikecek fonksiyon çağrısından kaçınır. Tek bir deyimde eklenecek birkaç değeriniz ya da açılacak bir değer listeniz olduğunda array_push() kullanın.
$arr[] = henüz var olmayan bir değişkende de çalışır: PHP diziyi oluşturur. array_push() var olan bir dizi ister: tanımsız bir değişkende TypeError: array_push(): Argument #1 ($array) must be of type array, null given fırlatır.
Anahtar ve değer ekleme
array_push() yalnızca bir sonraki tam sayı anahtarla değer ekler. Adlandırılmış bir anahtar eklemek için ona atama yapın. Aynı anda birkaç çift eklemek için += (var olan anahtarları korur) veya array_merge() (yeni değerlerin kazanmasını sağlar) kullanın.
Anahtarlar çakıştığında + ile array_merge() arasındaki fark array_merge sayfasında anlatılıyor.
Başa ekleme: array_unshift
array_unshift($arr, $value) başa ekler. Tam sayı anahtarlar yeniden numaralanır, böylece yeni değer 0 indeksini alır; dizge anahtarlar olduğu gibi kalır. array_push() gibi birkaç değer kabul eder ve yeni sayıyı döndürür.
Adlandırılmış bir çifti başa koymak için yeni bir dizi oluşturun: $menu = ['login' => '/login'] + $menu;.
Belirli bir konuma ekleme
array_splice($arr, $offset, 0, $values) hiçbir şey silmeden ekler: $offset konumundan başlar, 0 eleman siler ve yeni değerleri oraya koyar. Ekleme noktasından sonraki tam sayı anahtarlar yeniden numaralanır.
array_splice() elemanları silebilir ve değiştirebilir de; eleman silme sayfası bu biçimleri gösterir.
Başka bir diziyi ekleme
array_push($a, $b) $b dizisini tek bir iç içe eleman olarak ekler, bu nadiren istenen şeydir. $b değerlerini tek tek eklemek için onları açın ya da açma söz dizimi veya array_merge() ile yeni bir dizi oluşturun.
Sık yapılan hata: dönüş değerini atamak
array_push() bir sayı, yani yeni eleman sayısını döndürür. Bunu dizi değişkenine geri atamak dizinizi bir tam sayıyla değiştirir ve onun üzerindeki bir sonraki array_push() bir TypeError fırlatır.
Aynısı array_unshift() ve true döndüren sort() için de geçerlidir. Bir diziyi yerinde değiştiren fonksiyonlar diziyi değil bir durum değeri döndürür.
Sıkça Sorulan Sorular
PHP'de array_push ile $arr[] arasındaki fark nedir?
İkisi de sona ekler. $arr[] = $x; fonksiyon çağrısı olmadan tek bir değer ekler, bu yüzden olağan seçimdir ve biraz daha hızlıdır. array_push($arr, $a, $b, $c) aynı anda birkaç değer eklediğinizde kullanışlıdır ve yeni eleman sayısını döndürür.
PHP'de bir diziye anahtar ve değer nasıl eklerim?
Anahtara atama yapın: $arr['color'] = 'blue';. array_push() bunu yapamaz çünkü her zaman bir sonraki tam sayı anahtarı kullanır. Aynı anda birkaç çift eklemek için $arr += ['a' => 1, 'b' => 2]; veya array_merge() kullanın.
PHP'de bir dizinin başına nasıl eleman eklerim?
array_unshift($arr, $value) kullanın. Tam sayı anahtarları yeniden numaralar, böylece yeni değer 0 indeksini alır; dizge anahtarlar olduğu gibi kalır.
array_push sonrasında dizim neden bir sayıya dönüşüyor?
Çünkü array_push() diziyi değil yeni eleman sayısını döndürür. $arr = array_push($arr, 'x'); yazmak diziyi o sayıyla değiştirir. Onu kendi satırında çağırın: array_push($arr, 'x');.