Apa yang lebih baik digunakan dalam PHP untuk menambahkan anggota array,
$array[] = $value;
atau
array_push($array, $value);
?
Meskipun manual mengatakan Anda lebih baik menghindari panggilan fungsi, saya juga membaca $array[]
jauh lebih lambat daripada array_push()
. Apa sajakah klarifikasi atau tolok ukur?
php
arrays
performance
alex
sumber
sumber
Jawaban:
Tidak ada tolok ukur, tetapi saya pribadi merasa
$array[]
lebih bersih untuk dilihat, dan sejujurnya membelah rambut selama milidetik cukup tidak relevan kecuali Anda berencana untuk menambahkan ratusan ribu string ke array Anda.Edit : Jalankan kode ini:
Penggunaan metode pertama
$array[]
hampir 50% lebih cepat dari yang kedua.Beberapa hasil benchmark:
Ini seharusnya tidak mengherankan, karena manual PHP mencatat ini:
Cara pengungkapannya, saya tidak akan terkejut jika
array_push
lebih efisien saat menambahkan beberapa nilai. EDIT : Karena penasaran, melakukan beberapa pengujian lebih lanjut, dan bahkan untuk sejumlah besar tambahan,$array[]
panggilan individu lebih cepat daripada satu panggilan besararray_push
. Menarik.sumber
$array[]
memang jauh lebih cepat, 300ms vs. 2000ms untuk tugas 1 juta di komputer saya. Namun, menambahkan 20 item sekaligus dalam array_push itu secepat 20$array[] =
detik.Kegunaan utama dari array_push () adalah Anda bisa mendorong beberapa nilai ke akhir array.
Dikatakan dalam dokumentasi :
sumber
Dari dokumen php untuk
array_push
:sumber
Kata di jalan adalah bahwa [] lebih cepat karena tidak ada overhead untuk pemanggilan fungsi. Plus, tidak ada yang benar-benar menyukai fungsi array PHP ...
"Apakah itu ... tumpukan jerami, jarum .... atau tumpukan jerami jarum ... ah, sialan ... [] ="
sumber
Satu perbedaan adalah Anda dapat memanggil array_push () dengan lebih dari dua parameter, yaitu Anda dapat mendorong lebih dari satu elemen sekaligus ke sebuah array.
cetakan
1,2,3,4
sumber
Deklarasi $ myarray [] sederhana akan lebih cepat karena Anda hanya mendorong item ke tumpukan item karena kurangnya overhead yang akan dibawa oleh suatu fungsi.
sumber
Karena " array_push " adalah sebuah fungsi dan dipanggil beberapa kali saat berada di dalam loop sehingga ia akan mengalokasikan memori ke dalam stack. Tetapi ketika kita menggunakan $ array [] = $ value maka kita hanya memberikan nilai ke array.
sumber
Yang kedua adalah panggilan fungsi sehingga umumnya harus lebih lambat daripada menggunakan fitur akses array inti. Tapi saya pikir bahkan satu query database dalam skrip Anda akan melebihi 1.000.000 panggilan ke
array_push()
.sumber
Meskipun pertanyaannya lebih banyak tentang kinerja, orang akan bertanya-tanya apakah ini praktik yang baik untuk digunakan
array_push
atau$arr[]
.Fungsi tersebut mungkin berarti baris yang lebih kecil untuk beberapa nilai:
Namun ,
array_push
...Saya akan bertahan dengan
$arr[]
.sumber
Saya hanya ingin menambahkan:
int array_push(...)
mengembalikan jumlah elemen baru dalam array ( php doc ). yang bisa berguna dan lebih ringkas daripada$myArray[] = ...; $total = count($myArray);
.Juga
array_push(...)
berarti ketika variabel digunakan sebagai tumpukan.sumber