Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk mengalih keluar nilai nol dari tatasusunan dalam php? 4 kaedah diperkenalkan

Bagaimana untuk mengalih keluar nilai nol dari tatasusunan dalam php? 4 kaedah diperkenalkan

PHPz
Lepaskan: 2023-03-24 17:58:01
asal
4903 orang telah melayarinya

Dalam PHP, soalan biasa ialah cara mengalih keluar nilai null ​​​​dari tatasusunan. Masalah ini berlaku khusus untuk aplikasi web kerana kadangkala data borang yang dimasukkan pengguna mungkin mengandungi nilai nol. Dalam artikel ini, kami akan menerangkan cara mengalih keluar nilai nol daripada tatasusunan PHP menggunakan kaedah yang berbeza dan memberikan kebaikan dan keburukan setiap kaedah.

Kaedah 1: Gunakan fungsi array_filter

Fungsi terbina dalam PHP array_filter boleh menapis elemen dalam tatasusunan dan menentukan keadaan penapis, seperti mengekalkan hanya nilai bukan nol . Berikut ialah kod contoh mudah:

$arr = array('a', 'b', null, 'c', '', 'd');
$arr = array_filter($arr);
print_r($arr);
Salin selepas log masuk

Outputnya ialah:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kelebihan fungsi array_filter ialah ia sangat ringkas dan mudah difahami serta boleh menyelesaikannya. masalahnya dengan cepat. Tetapi kelemahannya ialah indeks nilai yang ditapis boleh diubah.

Kaedah 2: Gunakan gelung foreach

Kaedah biasa yang lain ialah menggunakan gelung foreach untuk lelaran melalui keseluruhan tatasusunan dan semak setiap nilai pada setiap lelaran. Jika elemen kosong, alih keluarnya menggunakan fungsi tidak ditetapkan dalam PHP.

Berikut ialah contoh kod:

$arr = array('a', 'b', null, 'c', '', 'd');
foreach ($arr as $key => $value) {
    if (empty($value)) {
        unset($arr[$key]);
    }
}
print_r($arr);
Salin selepas log masuk

Output adalah seperti berikut:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kelebihan pendekatan ini ialah ia tidak mengubah indeks elemen, kerana ia adalah Padam elemen dengan nama kunci. Kelemahannya ialah fungsi yang tidak ditetapkan perlu digunakan dan kodnya agak kompleks.

Kaedah 3: Gunakan fungsi array_diff

Kaedah lain yang agak mudah ialah menggunakan fungsi array_diff array dalam PHP. Kita boleh menggunakan array_diff dengan dua tatasusunan yang sama, satu mengandungi semua nilai dan satu lagi mengandungi nilai nol. Ini akan mengembalikan perbezaan yang merupakan nilai bukan nol.

Berikut ialah contoh kod:

$arr = array('a', 'b', null, 'c', '', 'd');
$arr2 = array('');
$arr = array_diff($arr, $arr2);
print_r($arr);
Salin selepas log masuk

Output adalah seperti berikut:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kelebihan kaedah ini ialah ia mudah dan jelas, dan tidak memerlukan penggunaan gelung dan fungsi tidak ditetapkan. Kelemahannya ialah jika susunan nilai nol terlalu besar, ia boleh menjejaskan prestasi.

Kaedah 4: Gunakan fungsi tersuai

Kaedah terakhir ialah menggunakan fungsi yang ditulis sendiri untuk melintasi tatasusunan dan memadamkan nilai nol. Berikut ialah contoh kod menggunakan kaedah ini:

function removeEmpty($arr) {
    foreach ($arr as $key => $value) {
        if (is_array($value)) {
            $arr[$key] = removeEmpty($value);
        } else {
            if(empty($value)) {
                unset($arr[$key]);
            }
        }
    }
    return $arr;
}
$arr = array('a', 'b', null, 'c', '', 'd');
$arr = removeEmpty($arr);
print_r($arr);
Salin selepas log masuk

Output adalah seperti berikut:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kelebihan kaedah ini ialah ia boleh mengendalikan tatasusunan berbilang dimensi dan penapis fungsi boleh disesuaikan sepenuhnya. Tetapi kelemahannya ialah ia tidak seintuitif dan mudah difahami seperti fungsi terbina dalam yang mudah.

Kesimpulan

Dalam PHP, kami mempunyai banyak cara untuk mengalih keluar nilai nol daripada tatasusunan. Kaedah yang berbeza mempunyai kelebihan dan kekurangan mereka sendiri. Fungsi array_filter ialah cara paling mudah, tetapi ia mengubah indeks tatasusunan. Menggunakan gelung foreach untuk menyemak semua elemen dan mengalih keluarnya memerlukan kod yang agak kompleks. Fungsi array_diff mungkin memberi kesan kepada prestasi, manakala fungsi tersuai boleh mengendalikan tatasusunan berbilang dimensi tetapi memerlukan lebih banyak kod. Akhirnya, kaedah yang paling sesuai boleh dipilih berdasarkan senario aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar nilai nol dari tatasusunan dalam php? 4 kaedah diperkenalkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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