Rumah > rangka kerja php > ThinkPHP > teks badan

Ringkaskan beberapa cara biasa untuk memadam medan tatasusunan dalam thinkphp

PHPz
Lepaskan: 2023-04-07 13:00:45
asal
696 orang telah melayarinya

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.

  1. Gunakan unset()

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);
Salin selepas log masuk

Laksanakan kod, hasilnya adalah seperti berikut:

Array
(
    [id] => 1
    [name] => Tom
)
Salin selepas log masuk
Salin selepas log masuk

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.

  1. Gunakan array_diff_key()

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);
Salin selepas log masuk

Melaksanakan kod ini, hasilnya adalah seperti berikut:

Array
(
    [age] => 20
)
Salin selepas log masuk

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.

  1. Menggunakan array_filter()

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);
Salin selepas log masuk

Melaksanakan kod ini, hasilnya adalah seperti berikut:

Array
(
    [id] => 1
    [name] => Tom
)
Salin selepas log masuk
Salin selepas log masuk

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.

  1. Gunakan array_map()

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);
Salin selepas log masuk

Melaksanakan kod, hasilnya adalah seperti berikut:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Tom
        )

)
Salin selepas log masuk

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan