Bagaimana untuk membuang nilai nol dari tatasusunan php

PHPz
Lepaskan: 2023-04-20 10:03:23
asal
843 orang telah melayarinya

Dalam pengaturcaraan PHP, kami sering menghadapi situasi di mana nilai nol dalam tatasusunan perlu dialih keluar Keadaan ini mungkin berlaku dalam senario seperti pembersihan data dan penapisan data. Terdapat beberapa cara untuk mencapai ini dalam PHP, dan kami akan membincangkannya secara terperinci di bawah, bersama dengan kebaikan dan keburukan mereka.

Kaedah 1: Gunakan fungsi array_filter()

fungsi array_filter() boleh mengembalikan tatasusunan baharu, di mana elemen yang tidak memenuhi syarat fungsi tersuai ditapis keluar. Kita boleh membina fungsi tersuai untuk menentukan sama ada elemen adalah nol.

Kod sampel adalah seperti berikut:

$array = array("foo", "", "bar", null, "baz");
$new_array = array_filter($array, function($item) {
    return !empty($item);
});
Salin selepas log masuk

Dalam contoh ini, tatasusunan $array mengandungi rentetan kosong, nilai nol dan elemen bukan kosong fungsi, kita mendapat Tatasusunan baharu yang tidak mengandungi nilai nol, iaitu array_filter(). $new_array

Perlu diambil perhatian bahawa fungsi

akan mengalih keluar nilai berikut secara lalai: array_filter()

    "" (rentetan kosong)
  • 0 (integer 0)
  • 0.0 (nombor titik terapung 0)
  • "0" (rentetan "0")
  • false (boolean false)
  • null
Jika anda perlu mengalih keluar nilai lain, anda boleh menghantar parameter kedua melalui fungsi tersuai untuk penapisan.

Kelebihan:

Fungsi ini mudah digunakan dan keadaan penapisan boleh disesuaikan. array_filter()

Kelemahan: Berbanding dengan kaedah lain, kaedah ini mempunyai prestasi yang lemah, terutamanya untuk tatasusunan sederhana dan besar.

Kaedah 2: Gunakan gelung foreach untuk mengalih keluar nilai nol

Kaedah ini lebih langsung Anda boleh melintasi tatasusunan melalui gelung foreach, dan kemudian menggunakan ciri jenis lemah PHP (nilai nol ​​akan ditukar secara automatik kepada palsu) untuk menentukan dan mengalih keluar nilai nol.

Kod sampel adalah seperti berikut:

$array = array("foo", "", "bar", null, "baz");
foreach($array as $key => $value) {
    if(!$value) {
        unset($array[$key]);
    }
}
Salin selepas log masuk
Dalam contoh ini, kita melintasi tatasusunan

Jika nilai elemen itu palsu, iaitu, ia dinilai menjadi nilai nol, kemudian gunakan $array Fungsi mengalih keluar elemen. unset()

Kelebihan: Berbanding dengan fungsi

, kaedah ini mempunyai prestasi yang lebih baik untuk tatasusunan besar. array_filter()

Kelemahan: Pertimbangan bersyarat perlu ditambah secara manual dan kodnya tidak cukup ringkas.

Kaedah 3: Gunakan fungsi array_diff()

Fungsi ini digunakan untuk mengira set perbezaan nilai tatasusunan. Kita boleh menggunakan ini untuk mengalih keluar nilai nol. array_diff()

Kod sampel adalah seperti berikut:

$array = array("foo", "", "bar", null, "baz");
$new_array = array_diff($array, array("", null));
Salin selepas log masuk
Dalam contoh ini, kami menggunakan fungsi

untuk mengira perbezaan antara tatasusunan array_diff() dan tatasusunan yang mengandungi rentetan kosong dan nilai null, dengan itu Dapatkan tatasusunan baharu $array. Kita dapat melihat bahawa kaedah ini boleh menapis berbilang nilai sekaligus. $new_array

Perlu diambil perhatian bahawa kaedah ini hanya boleh menapis nilai nol berkod keras dan tidak boleh menyesuaikan keadaan penapis.

Kelebihan: Kod ini mudah dan berbilang nilai boleh ditapis pada satu masa.

Kelemahan: Tidak dapat menyesuaikan keadaan penapis.

Ringkasnya, untuk tatasusunan berskala besar, kami mengesyorkan menggunakan kaedah dua untuk tatasusunan berskala kecil, anda boleh memilih kaedah satu atau kaedah tiga.

Atas ialah kandungan terperinci Bagaimana untuk membuang nilai nol dari tatasusunan php. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!