Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php keluarkan data kosong daripada tatasusunan

php keluarkan data kosong daripada tatasusunan

WBOY
WBOYasal
2023-05-24 14:23:38450semak imbas

Dalam PHP, tatasusunan ialah jenis data yang sangat biasa digunakan, yang boleh digunakan untuk menyimpan set data. Walau bagaimanapun, dalam pembangunan harian, kita sering menghadapi situasi di mana kita perlu menghapuskan data kosong dalam tatasusunan. Artikel ini akan memperkenalkan cara untuk menghapuskan data kosong dalam tatasusunan dengan menulis kod PHP.

Untuk memahami kandungan artikel ini dengan lebih baik, kita perlu memahami apa itu tatasusunan dan apakah itu data kosong.

Suatu tatasusunan boleh difahami sebagai koleksi nilai tersusun, setiap nilai boleh diakses melalui pengecam unik (indeks). Dalam PHP, tatasusunan boleh dibuat melalui fungsi tatasusunan() atau melalui sintaks [] ringkas. Berikut ialah contoh tatasusunan PHP:

$array = array("apple", "orange", "banana", "");

Dalam contoh di atas, kami telah mencipta tatasusunan dengan empat elemen, di mana elemen keempat ialah rentetan kosong.

Data kosong merujuk kepada data yang nilainya dalam tatasusunan adalah nol, rentetan kosong, tatasusunan kosong, palsu, 0 atau objek tanpa sebarang atribut. Dalam PHP, anda boleh menggunakan fungsi empty() untuk menentukan sama ada pembolehubah mempunyai data kosong.

Kini, kami secara rasmi boleh mula memperkenalkan cara mengalih keluar data kosong dalam tatasusunan. Berikut ialah dua kaedah yang biasa digunakan:

Kaedah 1

Gunakan fungsi array_filter() terbina dalam PHP. Fungsi ini boleh menghantar elemen dalam tatasusunan ke dalam fungsi panggil balik dan menentukan sama ada untuk mengekalkan elemen berdasarkan nilai pulangan fungsi panggil balik. Sebagai contoh, kod berikut akan mengalih keluar elemen daripada tatasusunan yang nilainya adalah null, false, rentetan kosong, tatasusunan kosong dan 0:

$array = array("apple", "", "orange", null, "banana", false, array(), 0);
$array = array_filter($array, function ($item) {
    if (is_array($item) && count($item) == 0) {
        return false; // 保留非空数组
    }
    return !empty($item); // 剔除空字符串、null、false、0
});

Dalam kod di atas, kita mula-mula mencipta tatasusunan yang mengandungi elemen pelbagai jenis tatasusunan. Kemudian, panggil fungsi array_filter() dan masukkan fungsi tanpa nama. Dalam fungsi tanpa nama, kami memproses elemen dalam tatasusunan dan mengembalikan nilai Boolean. Jika nilai ini benar, elemen itu dikekalkan, jika tidak ia dialih keluar.

Perlu diambil perhatian bahawa dalam fungsi tanpa nama kami melakukan beberapa pemprosesan khas pada elemen dalam tatasusunan. Apabila nilai elemen ialah tatasusunan, kita juga perlu menentukan sama ada ia adalah tatasusunan kosong, dan jika ya, simpannya. Ini kerana tatasusunan kosong juga dianggap sebagai nilai nol dalam PHP.

Akhir sekali, kami mendapat tatasusunan baharu yang tidak mengandungi data kosong. Berikut ialah hasil penggunaan fungsi print_r() untuk mengeluarkan tatasusunan baharu:

Array
(
    [0] => apple
    [2] => orange
    [4] => banana
)

Seperti yang anda lihat, tatasusunan baharu hanya mengandungi unsur tidak kosong dalam tatasusunan asal.

Kaedah 2

Gunakan gelung untuk melintasi tatasusunan asal dan padamkan data kosong. Kaedah ini agak mudah, tetapi memerlukan menulis kod gelung secara manual. Sebagai contoh, kod berikut akan menggunakan gelung foreach untuk lelaran melalui tatasusunan dan mengalih keluar data kosong daripadanya:

$array = array("apple", "", "orange", null, "banana", false, array(), 0);
foreach ($array as $key => $value) {
    if (is_array($value) && count($value) == 0) {
        unset($array[$key]); // 剔除空数组
    } elseif (empty($value)) {
        unset($array[$key]); // 剔除空字符串、null、false、0
    }
}

Dalam kod di atas, kami mula-mula mencipta tatasusunan yang mengandungi unsur pelbagai jenis. Kemudian, gunakan gelung foreach untuk menggelung melalui tatasusunan dan semak sama ada setiap elemen adalah data kosong. Jika ya, gunakan fungsi unset() untuk mengalih keluar elemen.

Perlu diambil perhatian bahawa apabila memadamkan elemen tatasusunan, kami menggunakan fungsi unset() dan bukannya menggunakan unset($array[$key]) secara langsung. Ini kerana jika kita memadamkan elemen secara terus menggunakan unset($array[$key]), indeks tatasusunan akan diindeks semula, yang mungkin membawa kepada beberapa ralat yang tidak dijangka. Menggunakan fungsi unset() boleh mengelakkan masalah ini.

Akhir sekali, kami juga mendapat tatasusunan baharu yang tidak mengandungi data kosong. Berikut ialah hasil penggunaan fungsi print_r() untuk mengeluarkan tatasusunan baharu:

Array
(
    [0] => apple
    [2] => orange
    [4] => banana
)

Seperti yang anda lihat, tatasusunan baharu hanya mengandungi unsur tidak kosong dalam tatasusunan asal.

Ringkasnya, ini adalah cara untuk menghapuskan data kosong dalam tatasusunan dengan menulis kod PHP. Sama ada menggunakan fungsi array_filter() atau traversal gelung, ia boleh membantu kami mengalih keluar data kosong daripada tatasusunan dengan mudah, menjadikan kod kami lebih ringkas dan cekap.

Atas ialah kandungan terperinci php keluarkan data kosong daripada tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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