Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengalih keluar nilai nol dari tatasusunan dalam php? 4 kaedah diperkenalkan
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);
Outputnya ialah:
Array ( [0] => a [1] => b [3] => c [5] => d )
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);
Output adalah seperti berikut:
Array ( [0] => a [1] => b [3] => c [5] => d )
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);
Output adalah seperti berikut:
Array ( [0] => a [1] => b [3] => c [5] => d )
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);
Output adalah seperti berikut:
Array ( [0] => a [1] => b [3] => c [5] => d )
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!