Dalam ThinkPHP, memadam medan tertentu dalam tatasusunan ialah operasi biasa. Walau bagaimanapun, memandangkan PHP ialah bahasa dinamik, sesetengah pembangun mungkin tidak biasa dengan sintaks beberapa operasi tatasusunan, mengakibatkan kod yang tidak cukup elegan dan cekap. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk memadamkan medan tatasusunan supaya pembangun boleh menulis kod yang lebih ringkas, elegan dan cekap.
Fungsi unset() dalam PHP boleh memadamkan elemen tertentu dalam tatasusunan. Berikut ialah contoh yang menunjukkan cara menggunakan fungsi unset() untuk memadam medan tertentu dalam tatasusunan:
$arr = array('id' => 1, 'name' => 'Tom', 'age' => 20); unset($arr['age']); print_r($arr);
Laksanakan kod, hasilnya adalah seperti berikut:
Array ( [id] => 1 [name] => Tom )
Dengan fungsi unset(), kami berjaya memadamkan medan 'age' dalam array $arr.
Walaupun kaedah ini mudah, kelemahannya juga jelas: anda mesti terlebih dahulu mengetahui nama kunci medan yang hendak dipadamkan, yang mungkin agak sukar untuk tatasusunan yang besar dan bersarang dalam.
array_diff_key() fungsi untuk membandingkan nama kunci dua tatasusunan dan mengembalikan tatasusunan baru yang mengandungi semua kunci dalam kekunci A yang muncul dalam satu tatasusunan tetapi tidak dalam tatasusunan lain. Ringkasnya, ia membandingkan nama kunci dua tatasusunan dan menapis nama kunci tersebut yang hanya muncul dalam tatasusunan pertama.
Berikut ialah contoh menggunakan fungsi array_diff_key():
$arr = array('id' => 1, 'name' => 'Tom', 'age' => 20); $arr2 = array('id' => 1, 'name' => 'Tom'); $newarr = array_diff_key($arr, $arr2); print_r($newarr);
Melaksanakan kod ini, hasilnya adalah seperti berikut:
Array ( [age] => 20 )
Melalui contoh ini , kita lihat, Menggunakan fungsi array_diff_key(), kita boleh membandingkan nama kunci dua tatasusunan tanpa mengendalikan tatasusunan secara terus, mencari nama kunci tersebut yang hanya muncul dalam tatasusunan pertama, dan kemudian mengembalikan tatasusunan baharu, dalam tatasusunan baharu Mengandungi semua kunci yang tidak muncul dalam tatasusunan lain.
Selain menggunakan fungsi array_diff_key() untuk memadamkan nama kunci tertentu dalam tatasusunan, kita juga boleh menggunakan fungsi array_filter(). Fungsi ini digunakan untuk menapis elemen dalam tatasusunan dan mengembalikan tatasusunan yang ditapis. Kita boleh menggunakan parameter kedua dalam fungsi array_filter() untuk menentukan elemen yang ingin kita tapis. Berikut ialah contoh penggunaan fungsi array_filter():
$arr = array('id' => 1, 'name' => 'Tom', 'age' => 20); $newarr = array_filter($arr, function($k) { return $k !== 'age'; }, ARRAY_FILTER_USE_KEY); print_r($newarr);
Melaksanakan kod ini, hasilnya adalah seperti berikut:
Array ( [id] => 1 [name] => Tom )
Melalui contoh ini, kita melihat bahawa menggunakan array_filter(), Kita boleh menentukan fungsi panggil balik dan menilai elemen dalam fungsi panggil balik. Jika keputusan penghakiman adalah BENAR, elemen dikembalikan kepada tatasusunan baharu, jika tidak, ia tidak dikembalikan. Dalam contoh ini, kami menggunakan fungsi panggil balik untuk menapis elemen dengan nama kunci 'umur' dalam tatasusunan.
Kaedah terakhir ialah menggunakan fungsi array_map(). array_map() ialah fungsi tatasusunan yang sangat praktikal dalam PHP Ia digunakan untuk menggunakan fungsi panggil balik kepada setiap elemen tatasusunan yang diberikan dan mengembalikan tatasusunan baharu yang mengandungi semua nilai pulangan. Apabila kita perlu memproses setiap nilai dalam tatasusunan, kita boleh mempertimbangkan untuk menggunakan fungsi array_map().
Berikut ialah contoh menggunakan fungsi array_map():
$arr = array('id' => 1, 'name' => 'Tom', 'age' => 20); $newarr = array_map(function($key) use ($arr) { unset($arr[$key]); return $arr; }, array('age')); print_r($newarr);
Melaksanakan kod, hasilnya adalah seperti berikut:
Array ( [0] => Array ( [id] => 1 [name] => Tom ) )
Dalam contoh ini , kami menggunakan fungsi tanpa nama yang bertindak pada tatasusunan ['umur'], menggunakan fungsi unset() untuk memadamkan elemen dengan nama kunci 'umur' daripada tatasusunan dan mengembalikan tatasusunan yang diproses kepada tatasusunan baharu.
Kesimpulan
Mengikut situasi yang berbeza, kita boleh menggunakan kaedah di atas untuk memadam medan dalam tatasusunan. Jika kita memadamkan elemen tetap, kita boleh menggunakan fungsi unset() jika kita hanya perlu memadamkan beberapa elemen tertentu, kita boleh menggunakan fungsi array_diff_key() jika kita perlu melakukan penapisan dan penapisan yang kompleks, kita boleh gunakan fungsi array_filter () dan array_map(). Ringkasnya, mengikut keperluan sebenar kita, kita boleh memilih kaedah yang sesuai untuk memadamkan elemen tertentu dalam tatasusunan.
Atas ialah kandungan terperinci Ringkaskan beberapa cara biasa untuk memadam medan tatasusunan dalam thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!