PHP代码优化之array_push
PHP中数组插入数据通常有这么几种:
- 定义的时候直接赋值
$arr = array(‘apple’, ’banana’);
- 使用数组变量操作
$arr = array(); $arr[] = ‘apple’; $arr[] = ‘banana’;
- 使用array_push()插入
$arr = array(‘apple’); array_push($arr, ‘banana’, ‘orange’);
在项目中,我们大部分情况都是先从数据库中获取数据,然后转成数组形式,而对于第一种情况,在定义数组的时候直接赋值往往只适合数据量很小,而且是已知的情况,所以就不存在什么代码优化了,我们主要讲第二种和第三种。
性能比较
我们使用php 7.2
来测试,并且没有做任何配置上的优化。测试方法:定义一个数组,分别用第二种和第三种方式插入10万条记录,代码大致如下:
convert
函数用来查看内存占用情况,运行结果如下:
通过多次运行上述代码,可以发现直接使用数组变量赋值耗时在0.0045
左右,而使用array_push
的方式耗时在0.006
左右,消耗的内存都是一样的,因为都是10万条记录。
对比两种方法,发现方法二确实比调用array_push
快,因为在每次循环时函数调用需要消耗一些时间,但仅仅看上面的测试,并不觉得第二种方法比第三种方法快多少,完全可以忽略不计的。
的确,这种优化在绝大多数应用中和没优化没啥区别,但是当应用达到瓶颈的时候,每一处不起眼的优化可能都会使性能提高不少,况且我们的测试中数组的结构很简单,真实项目中数据类型不是这么单一,可能还是嵌套的数组,数组的大小可能也不止10万。
我们再来看看两者的差异,array_push()
是函数调用,另一个不是,这就是说了,从代码量上看两者也是一样的,从数组结构上看,测试中我们都没有使用索引,默认都是从0开始,如果要使用key => value
形式插入数据时,array_push()
就不是很好处理了,这时使用法二就很方便:$array1[$key] => $x
。
前面都是说array_push()
怎么不好,但有时候array_push
还是很好用的。比如我们要一次插入多个元素时,就可以这样使用:
$arr = array(‘a’, ’b’); array_push($arr, ‘c’, ‘d’); // $arr = array(‘a’, ’b’, ‘c’, ‘d’);
通过上面对比可见,PHP中数组插值的方法有很多,虽然每种方法差不多,但了解每一种方法何时使用还是很有必要的。
相关课程:PHP视频教程
Atas ialah kandungan terperinci PHP代码优化之array_push. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
