Dalam pembangunan PHP, tatasusunan ialah salah satu jenis data yang kerap digunakan. Fungsi operasi untuk tatasusunan juga agak kaya. Antaranya, fungsi array_map() ialah fungsi operasi tatasusunan yang sangat praktikal Ia boleh menggunakan fungsi pada setiap elemen tatasusunan dan mengembalikan tatasusunan baharu.
Artikel ini terutamanya akan memperkenalkan penggunaan dan langkah berjaga-jaga bagi fungsi array_map() dan menunjukkannya dengan contoh.
array_map() Fungsi array_map() adalah untuk menggunakan parameter pertama (fungsi PHP) pada setiap elemen tatasusunan yang masuk, dan hasil setiap elemen yang diproses oleh fungsi adalah sebagai Elemen tatasusunan baru dikembalikan. Sebagai contoh, anda boleh menggunakan fungsi array_map() untuk pendaraban nilai tatasusunan, pengubahsuaian nilai tatasusunan ke tahap tertentu, atau penukaran hasil yang diperolehi, dsb. Sintaks asas fungsi
array_map() adalah seperti berikut:
array array_map ( callable $callback , array $array1 [, array $...] )
Antaranya, parameter $callback
menunjukkan bahawa kaedah panggil balik perlu dibuat untuk setiap elemen, dan Parameter $array1
menunjukkan bahawa tatasusunan untuk diproses. Berbilang tatasusunan boleh digunakan, supaya kaedah panggil balik boleh lulus dalam berbilang parameter, sepadan dengan bilangan parameter yang dihantar ke dalam fungsi. Anda juga boleh menetapkan kaedah panggil balik kepada null
, supaya fungsi array_map() akan terus mengembalikan setiap elemen tatasusunan yang diluluskan ke dalam tatasusunan baharu. $callback
参数表示要对每个元素做一个回调方法,$array1
参数表示要进行处理的数组。可以使用多个数组,这样可以使回调方法传入多个参数,对应传入函数的参数数量。也可以将回调方法设为 null
,这样 array_map() 函数会直接将每个传入数组的元素组成一个新的数组返回。
接下来,我们通过一些示例来演示 array_map() 函数的使用方法。
<?php function double($value){ return $value*2; } $a = array(1, 2, 3, 4, 5); $b = array_map("double", $a); print_r($b); ?>
输出结果:
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
在上面的代码中,我们定义了回调函数 double(),该函数的作用是将传入值翻倍。接着,我们创建了一个数组 $a
,数组中包含了数字 1 到 5。然后,我们通过调用 array_map() 函数并传入数组 $a
和回调函数“double”获得了一个新的数组 $b
,其中每个元素都是原数组中元素的两倍。
<?php function combine($a, $b){ return $a . $b; } $a = array("a", "b", "c", "d"); $b = array("1", "2", "3", "4"); $combine = array_map("combine", $a, $b); print_r($combine); ?>
输出结果:
Array ( [0] => a1 [1] => b2 [2] => c3 [3] => d4 )
在本例中,我们定义了回调函数 combine(),该函数的作用是将两个传入值合并成为一个新的字符串。接着,我们创建了两个数组 $a
和 $b
,这两个数组以相同的键名存储了不同的值。然后,我们通过调用 array_map() 函数并传入两个数组 $a
和 $b
以及回调函数“combine”创建了一个新的数组 $combine
。
<?php function removeEmpty($value){ return trim($value); } $array= array("hello", " ", "world", "", "!"); $no_empty = array_filter(array_map("removeEmpty", $array)); var_dump($no_empty); ?>
输出结果:
array(3) { [0]=> string(5) "hello" [2]=> string(5) "world" [4]=> string(1) "!" }
在上面的代码中,我们定义了回调函数 removeEmpty(),该函数的作用是去掉字符串的空格。接着,我们创建了一个包含一些空元素的数组 $array
。使用 array_map("removeEmpty", $array)
函数,我们可以做一个回调函数removeEmpty()
,将数组中的每个元素传入回调函数中处理。最后使用 array_filter()
函数可以将空元素过滤掉。得到了 $no_empty
$a
yang mengandungi nombor 1 hingga 5. Kemudian, kita mendapat tatasusunan baru $b
dengan memanggil fungsi array_map() dan menghantar tatasusunan $a
dan fungsi panggil balik "double", di mana setiap elemen adalah dua kali bilangan elemen dalam tatasusunan asal. $a
dan $b
, yang menyimpan nilai yang berbeza dengan nama kunci yang sama. Kami kemudian mencipta tatasusunan baru $ dengan memanggil fungsi array_map() dan menghantar dua tatasusunan <code>$a
dan $b
dan fungsi panggil balik "combine" bergabung . Alih keluar elemen kosong dalam tatasusunan
🎜rrreee🎜Hasil keluaran: 🎜rrreee🎜Dalam kod di atas, kami menentukan fungsi panggil balik removeEmpty(), yang digunakan untuk mengalih keluar rentetan Space. Seterusnya, kami mencipta tatasusunan$array
yang mengandungi beberapa elemen kosong. Menggunakan fungsi array_map("removeEmpty", $array)
, kita boleh membuat fungsi panggil balik removeEmpty()
dan menghantar setiap elemen dalam tatasusunan ke dalam fungsi panggil balik untuk pemprosesan. Akhir sekali, gunakan fungsi array_filter()
untuk menapis elemen kosong. Tatasusunan $no_empty
diperoleh, yang mengandungi semua elemen dalam tatasusunan asal selepas mengalih keluar elemen kosong. 🎜🎜3. Nota pada fungsi array_map()🎜🎜Untuk menggunakan fungsi array_map() dengan betul, anda harus mengingati perkara berikut: 🎜🎜🎜Nilai yang dihantar kepada fungsi panggil balik ialah elemen SEMASA (semasa) dalam setiap tatasusunan, nilai Perubahan berlaku dalam gelung panggilan. Jika bukan tatasusunan dihantar ke fungsi array_map(), nilai akan dihantar ke fungsi panggil balik secara individu. 🎜🎜Pengguna boleh menyesuaikan fungsi panggil balik. Anda boleh menggunakan fungsi terbina dalam PHP atau fungsi tersuai. 🎜🎜Jika anda perlu menghantar fungsi tanpa nama kepada fungsi array_map(), anda perlu menggunakan PHP 5.3 atau lebih tinggi. Fungsi 🎜🎜array_map() adalah sensitif kepada nilai indeks permulaan tatasusunan. Sebagai contoh, jika dua tatasusunan diluluskan dengan nama kunci yang berbeza, nama kunci yang lebih kecil akan digunakan untuk membina tatasusunan yang dikembalikan. 🎜🎜Jika kedua-dua kekunci dan nilai dalam tatasusunan parameter akan digunakan dalam fungsi panggil balik, jangan gunakan fungsi array_map(), tetapi gunakan gelung foreach untuk beroperasi. 🎜🎜🎜4 Ringkasan🎜🎜Dalam artikel ini, kami memperkenalkan definisi, penggunaan dan langkah berjaga-jaga bagi fungsi array_map() secara terperinci. Fungsi array_map() ialah fungsi pemprosesan tatasusunan yang sangat praktikal Ia boleh menggunakan fungsi pada setiap elemen dalam tatasusunan, dan mengembalikan hasil setiap elemen yang diproses oleh fungsi itu kepada tatasusunan baharu. Melalui aplikasi yang munasabah, fungsi array_map() boleh memudahkan proses operasi tatasusunan PHP, membolehkan pengaturcara memproses tatasusunan dengan lebih mudah dan cekap. 🎜Atas ialah kandungan terperinci Penjelasan terperinci tentang penggunaan fungsi array_map() dalam pustaka fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!