Jadual Kandungan
array_map : Lakukan pemprosesan bersatu bagi setiap elemen
array_filter : Tinggalkan elemen yang mematuhi peraturan
array_reduce : tumpukan array menjadi hasilnya
Rumah pembangunan bahagian belakang tutorial php Huraikan perbezaan antara `array_map`,` array_filter`, dan `array_reduce` dalam php.

Huraikan perbezaan antara `array_map`,` array_filter`, dan `array_reduce` dalam php.

Jul 08, 2025 am 01:08 AM

Perbezaan antara array_map, array_filter dan array_reduce adalah: 1.array_map secara seragam memproses setiap elemen dan mengembalikan array baru; 2.Array_filter menapis elemen yang memenuhi syarat, mengekalkan nilai asal atau mengubah nilai utama; 3.Array_reduce memelukkan array menjadi hasilnya. Khususnya, array_map sesuai untuk mengubah semua elemen dalam array, seperti operasi kuadrat untuk menghasilkan array baru; array_filter digunakan untuk menapis unsur -unsur yang memenuhi syarat -syarat, dan menyokong penapisan lalai nilai palsu dan penghakiman panggilan balik tersuai; array_reduce memampatkan array ke dalam satu nilai melalui pengumpulan, seperti penjumlahan atau rentetan splicing, dan nilai awal boleh disesuaikan atau elemen pertama digunakan secara lalai. Ketiganya mempunyai kegunaan yang jelas, sepadan dengan pengubahsuaian, penapisan dan operasi agregasi.

Huraikan perbezaan antara `array_map`,` array_filter`, dan `array_reduce` dalam php.

Dalam php, array_map , array_filter dan array_reduce adalah tiga fungsi pemprosesan array yang biasa digunakan. Mereka semua boleh digunakan dalam kombinasi dengan fungsi panggilan balik untuk mengendalikan tatasusunan, tetapi kegunaan masing -masing adalah berbeza. Ringkas:

Huraikan perbezaan antara `array_map`,` array_filter`, dan `array_reduce` dalam php.
  • array_map : Proses setiap elemen dalam array dan kembalikan array baru.
  • array_filter : Unsur penapis yang memenuhi kriteria, mengekalkan nilai asal atau mengubah suai nilai utama.
  • array_reduce : "mengecilkan" array ke dalam nilai, seperti penjumlahan, splicing, dll.

Mari kita lihat penggunaan sebenar dan perbezaan mereka di bawah.


array_map : Lakukan pemprosesan bersatu bagi setiap elemen

Fungsi ini sesuai untuk situasi di mana anda ingin melakukan beberapa transformasi pada setiap elemen dalam array. Ia akan melangkah ke atas array, lulus setiap elemen ke fungsi panggil balik, dan kemudian kumpulkan nilai pulangan untuk membentuk array baru.

Huraikan perbezaan antara `array_map`,` array_filter`, dan `array_reduce` dalam php.

Contoh penggunaan biasa:

 $ nombor = [1, 2, 3, 4];
$ squared = array_map (fn ($ n) => $ n * $ n, $ nombor);
// Keputusan: [1, 4, 9, 16]
  • Fungsi panggil balik mesti mempunyai nilai pulangan, jika tidak, kedudukan akan menjadi null .
  • Pelbagai susunan boleh diluluskan, dan parameter panggil balik sesuai dengan satu (contohnya, dua tatasusunan ditambah).
  • Kekunci array asal akan dikekalkan melainkan jika anda lulus pelbagai tatasusunan dan kunci tidak konsisten, dan kemudian mereka akan digabungkan mengikut indeks.

array_filter : Tinggalkan elemen yang mematuhi peraturan

Gunakan fungsi ini apabila anda ingin memilih unsur -unsur tertentu yang memenuhi kriteria dari array. Ia tidak akan mengubah nilai elemen (melainkan jika anda secara aktif mengubahnya dalam panggilan balik), ia hanya memutuskan sama ada untuk tinggal atau tidak.

Huraikan perbezaan antara `array_map`,` array_filter`, dan `array_reduce` dalam php.

Dua cara untuk digunakan:

  • Hanya satu parameter yang diluluskan : secara automatik menapis "nilai palsu" (seperti 0 , false , null , '' ).
  • Bawa fungsi panggilan balik : Tentukan logik penghakiman sendiri.
 $ nombor = [0, 1, 2, palsu, '', null, 3];

$ result = array_filter ($ nombor);
// hasil: [1 => 1, 2 => 2, 6 => 3], hanya meninggalkan "nilai sejati"

$ even = array_filter ($ nombor, fn ($ n) => is_int ($ n) && $ n % 2 === 0);
// menapis nilai yang beruntung dan bahkan nombor

Notis:

  • Jika anda ingin menyimpan nama kunci asal, ingatlah untuk menggunakan bendera ARRAY_FILTER_USE_BOTH .
  • Jika fungsi panggil balik kembali true , ia akan dikekalkan, dan false ia akan dikecualikan.

array_reduce : tumpukan array menjadi hasilnya

Ini adalah yang paling fleksibel tetapi juga yang paling mudah untuk salah faham. Ia tidak digunakan untuk menghasilkan array baru, tetapi untuk terus "mengumpul" hasil dan memampatkan keseluruhan array ke dalam nilai, seperti jumlah, splicing rentetan, pengiraan kompleks, dll.

 $ nombor = [1, 2, 3, 4];
$ sum = array_reduce ($ angka, fn ($ carry, $ item) => $ carry $ item, 0);
// Keputusan: 10

Mata Utama:

  • $carry adalah hasil kali terakhir, kali pertama adalah nilai awal (parameter ketiga).
  • $item adalah elemen yang kini diproses.
  • Nilai awal adalah pilihan. Sekiranya ia tidak diluluskan, elemen pertama dimulakan sebagai nilai awal dan diproses dari yang kedua.

Mari memberi contoh yang lebih rumit:

 $ words = ['Apple', 'Banana', 'Cherry'];
$ result = array_reduce ($ words, fn ($ str, $ word) => $ str. '-'. $ word);
// Hasil: 'Apple-Banana-Cherry'

Pada dasarnya itu sahaja. Walaupun ketiga -tiga fungsi ini boleh digunakan bersempena dengan panggilan balik, mereka mempunyai tanggungjawab yang jelas: map mengubah setiap elemen, filter memilih sebahagian daripadanya, reduce semuanya ke dalam satu hasil. Apabila menggunakannya, anda boleh menulis kod yang lebih jelas dan ringkas mengikut tujuannya.

Atas ialah kandungan terperinci Huraikan perbezaan antara `array_map`,` array_filter`, dan `array_reduce` dalam php.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana cara memeriksa sama ada alamat e -mel sah dalam php? Bagaimana cara memeriksa sama ada alamat e -mel sah dalam php? Sep 21, 2025 am 04:07 AM

UseFilter_var () TOVALIDATEMailSyntaxandCheckDnsrr () TOVERIFYDOnMAINMXRECORDS.example: $ e -mel = "user@example.com"; if (filter_var ($ e -mel, filter_email) && checkDnsrr (expode '

Bagaimana membuat salinan atau klon objek yang mendalam dalam php? Bagaimana membuat salinan atau klon objek yang mendalam dalam php? Sep 21, 2025 am 12:30 AM

UseUnserialize (Serialize ($ obj)) fordeepcopyingWhenallDataisserizable; jika tidak, pelaksanaan__clone () tomanuallyduplicatenestedObjectsandavoidsharedReferences.

Bagaimana untuk menggabungkan dua tatasusunan dalam PHP? Bagaimana untuk menggabungkan dua tatasusunan dalam PHP? Sep 21, 2025 am 12:26 AM

UseArray_Merge () toCombineArrays, OverwritingDuplicateStringKeySandreIndexingNumericKeys; forsimplerconcatenation, terutamaInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

Bagaimana cara menggunakan ruang nama dalam projek PHP? Bagaimana cara menggunakan ruang nama dalam projek PHP? Sep 21, 2025 am 01:28 AM

Namespacesinphporganizecodeandpreventnamingnamingconflictsbygroupinglasses, antara muka, fungsi, dan constantsunderaspecificname.2.defineAnamespaceusingthenamespaceywordetopofafile, diikuti olehbythenamespaceakenam

Apakah kaedah sihir dalam php dan memberikan contoh `__call ()` dan `__get ()`. Apakah kaedah sihir dalam php dan memberikan contoh `__call ()` dan `__get ()`. Sep 20, 2025 am 12:50 AM

The__call () methodistriggeredWhenaninaccessibleorundefinedmethodiscalledonanObject, membolehkanCustomHandlylyAccepteThemeThodnamnamnamnents, asshownwhencallingundefinedmethodslikesayhello ()

Bagaimana untuk mengemas kini rekod dalam pangkalan data dengan PHP? Bagaimana untuk mengemas kini rekod dalam pangkalan data dengan PHP? Sep 21, 2025 am 04:47 AM

Toupdateadatabaserecordinphp, firstConnectusingPdoormySqli, thenusePePreparedStatementStoExecuteAseCureSqlupDateQuery.example: $ pdo = newpdo ("mysql: host = localhost; dbName = your_database: $ userbase: $ userbase"

MySQL Agregasi Bersyarat: Gunakan Penyataan Kes untuk Melaksanakan Sumsum dan Mengira Kondisi Simpanan MySQL Agregasi Bersyarat: Gunakan Penyataan Kes untuk Melaksanakan Sumsum dan Mengira Kondisi Simpanan Sep 16, 2025 pm 02:39 PM

Artikel ini membincangkan secara mendalam bagaimana menggunakan pernyataan kes untuk melakukan pengagregatan bersyarat di MySQL untuk mencapai penjumlahan bersyarat dan mengira bidang tertentu. Melalui kes sistem langganan praktikal, ia menunjukkan bagaimana secara dinamik mengira jumlah tempoh dan bilangan peristiwa berdasarkan status rekod (seperti "akhir" dan "membatalkan"), dengan itu mengatasi batasan fungsi jumlah tradisional yang tidak dapat memenuhi keperluan pengagregatan bersyarat kompleks. Tutorial menganalisis penerapan pernyataan kes dalam jumlah fungsi secara terperinci dan menekankan pentingnya bersatu ketika berurusan dengan nilai nol yang mungkin dari gabungan kiri.

Bagaimana untuk mendapatkan sambungan fail dalam PHP? Bagaimana untuk mendapatkan sambungan fail dalam PHP? Sep 20, 2025 am 05:11 AM

UsePathinfo ($ FileName, pathinfo_extension) togetthefileextension; itreliLyHandlesmultipledotsandgecases, returnTheExtension (mis., "Pdf") Oranemptystringifnoneexists.

See all articles