Dalam manual PHP, ( array_push ) mengatakan ..
Jika Anda menggunakan array_push () untuk menambahkan satu elemen ke array, lebih baik menggunakan $ array [] = karena dengan cara itu tidak ada overhead untuk memanggil fungsi.
Sebagai contoh :
$arr = array();
array_push($arr, "stackoverflow");
print_r($arr);
vs.
$arr[] = "stackoverflow";
print_r($arr);
Saya tidak mengerti mengapa ada perbedaan besar.
Jawaban:
Saat Anda memanggil suatu fungsi dalam PHP (seperti
array_push()
), ada biaya tambahan untuk panggilan tersebut, karena PHP harus mencari referensi fungsi, menemukan posisinya di memori, dan menjalankan kode apa pun yang ditentukannya.Penggunaan
$arr[] = 'some value';
tidak memerlukan pemanggilan fungsi, dan mengimplementasikan penambahan langsung ke dalam struktur data. Jadi, saat menambahkan banyak data, ini jauh lebih cepat dan hemat sumber daya untuk digunakan$arr[]
.sumber
$arr[] = value
lebih cepat? Mencoba membayangkan mengapa kompilator memperlakukan kode secara berbeda.Anda dapat menambahkan lebih dari 1 elemen dalam satu tembakan ke array menggunakan array_push,
misalnya
array_push($array_name, $element1, $element2,...)
Di mana $ element1, $ element2, ... adalah elemen yang akan ditambahkan ke array.
Tetapi jika Anda ingin menambahkan hanya satu elemen pada satu waktu, maka metode lain (yaitu menggunakan $ array_name []) harus lebih disukai.
sumber
Perbedaannya ada pada baris di bawah ini menjadi "karena dengan cara itu tidak ada overhead pemanggilan suatu fungsi."
sumber
Anda harus selalu menggunakan
$array[]
jika memungkinkan karena kotak menyatakan tidak ada overhead untuk pemanggilan fungsi. Jadi, ini sedikit lebih cepat daripada pemanggilan fungsi.sumber
array_push - Dorong satu atau lebih elemen ke akhir array
Catat kata-kata " satu atau lebih elemen di akhir " untuk melakukan itu menggunakan
$arr[]
Anda harus mendapatkan ukuran maksimum dari arraysumber
$arr[...index...] = $value;
dengan apa yang dibahas di sini, yaitu$arr[] = $value;
. Tidak perlu mengetahui ukuran atau lariknya, untuk mendorong di akhir. Beberapa elemen hanya akan menjadi beberapa panggilan:$arr[] = $value1; $arr[] = $value2; $arr[] = $value3;
jelaskan: 1. yang pertama mendeklarasikan variabel dalam array.
2. metode array_push kedua digunakan untuk mendorong string ke dalam variabel array.
3. akhirnya akan mencetak hasilnya.
4. metode kedua adalah langsung menyimpan string dalam array.
5. data dicetak dalam nilai larik menggunakan metode print_r.
keduanya sama
sumber
keduanya sama, tetapi array_push membuat loop di parameternya yang merupakan array dan melakukan $ array [] = $ elemen
sumber
Saya tahu ini adalah jawaban lama tetapi mungkin bermanfaat bagi orang lain untuk mengetahui bahwa perbedaan lain antara keduanya adalah jika Anda harus menambahkan lebih dari 2/3 nilai per loop ke array, lebih cepat digunakan:
dari pada:
edit- Lupa menutup braket untuk
for
kondisionalsumber
for(...){ $arr = $arr + [$i, $i*2, $i*3, $i*4, ...] }
. Saya berspekulasi bahwa array_push masih sedikit lebih cepat dari itu.Tidak ada yang mengatakan, tetapi array_push hanya mendorong elemen ke AKHIR ARRAY, di mana $ array [index] dapat memasukkan nilai pada indeks yang diberikan. Perbedaan besar.
sumber
$array[index] =
, yang merupakan operasi berbeda dari$array[] = ...
. Pertanyaan tersebut memberikan dua bagian kode, dan menanyakan mengapa akan ada perbedaan [kinerja] yang signifikan di antara keduanya. Pertanyaan secara harfiah berarti$array[] = ...
, yang merupakan idiom php tertentu, yang tidak melibatkan indeks. array + index memecahkan masalah yang berbeda, menghasilkan kode yang berbeda, dan merupakan pertukaran yang berbeda.