Bagaimana untuk mengosongkan tatasusunan kosong dalam tatasusunan dua dimensi dalam php

PHPz
Lepaskan: 2023-04-19 09:27:44
asal
788 orang telah melayarinya

Dalam operasi tatasusunan PHP, kami sering menghadapi kehadiran nilai nol dalam tatasusunan, yang biasanya mempengaruhi operasi pemprosesan data berikutnya, jadi perlu mengosongkan nilai nol (rentetan kosong, palsu, batal, dll. .) dalam array Lose. Artikel ini akan memperkenalkan cara mengosongkan tatasusunan kosong dalam tatasusunan dua dimensi.

Dalam PHP, anda boleh menggunakan fungsi array_filter untuk mengosongkan nilai kosong ​​​​dalam tatasusunan. Fungsi ini boleh menerima dua parameter, parameter pertama mewakili tatasusunan yang akan ditapis, dan parameter kedua mewakili fungsi panggil balik yang akan digunakan. Fungsi panggil balik boleh menentukan nilai mana yang hendak ditapis Contohnya, jika kita ingin menapis rentetan kosong dan palsu, kita boleh mentakrifkan fungsi panggil balik seperti ini:

function my_callback($value){
    return $value !== '' && $value !== false;
}
Salin selepas log masuk

di mana $value mewakili setiap satu. elemen dalam tatasusunan, gunakan != Operator = menentukan sama ada syarat dipenuhi. Kemudian gunakan fungsi array_filter untuk menapis tatasusunan:

$arr = array('a', '', 'b', false, null);
$new_arr = array_filter($arr, 'my_callback');
print_r($new_arr);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => a
    [2] => b
)
Salin selepas log masuk

Seperti yang anda lihat, rentetan kosong dan palsu ditapis keluar. Tetapi apabila kita berurusan dengan tatasusunan dua dimensi, perkara menjadi lebih rumit.

Pertimbangkan tatasusunan dua dimensi berikut:

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

Matlamat kami adalah untuk mengosongkannya daripada tatasusunan kosong. Menggunakan fungsi array_filter, anda boleh menulis syarat penapis dalam bentuk berikut:

function my_callback($row){
    return array_filter($row, function($value){
        return $value !== '' && $value !== false;
    });
}
Salin selepas log masuk

di mana $row mewakili setiap baris dalam tatasusunan dua dimensi, gunakan array_filter untuk menapis elemen setiap baris, dan kemudian pulangkan hasilnya.

Kemudian kita boleh menggunakan fungsi array_map untuk menggunakan fungsi panggil balik ini pada setiap baris dalam tatasusunan dua dimensi:

$new_arr = array_map('my_callback', $arr);
print_r($new_arr);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => Array
        (
            [0] => a
            [2] => b
        )

    [1] => Array
        (
            [0] => c
        )

    [2] => Array
        (
            [1] => d
            [2] => e
        )

)
Salin selepas log masuk

Anda boleh lihat Sekarang, tatasusunan kosong telah dikosongkan. Perlu diingatkan bahawa hasil yang dikembalikan dengan menggunakan fungsi array_map masih merupakan tatasusunan dua dimensi, dan setiap baris mungkin mengandungi bilangan elemen yang berbeza, jadi tatasusunan mungkin perlu diindeks semula menggunakan fungsi array_values.

$new_arr = array_map('my_callback', $arr);
$new_arr = array_map('array_values', $new_arr);
print_r($new_arr);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
        )

    [2] => Array
        (
            [0] => d
            [1] => e
        )

)
Salin selepas log masuk

Seperti yang anda lihat, tatasusunan telah diindeks semula.

Untuk meringkaskan, mengosongkan tatasusunan kosong dalam tatasusunan dua dimensi boleh dicapai dengan menggabungkan fungsipenapis_tatasusunan dan peta_tatasusunan Anda perlu menulis dua fungsi panggil balik, satu untuk menapis elemen dan satu untuk mengindeks semula tatasusunan yang ditapis . Kelebihan kaedah ini ialah ia mudah dan mudah difahami, tetapi kelemahannya ialah kodnya agak panjang. Untuk program yang memerlukan operasi tatasusunan yang kerap, anda mungkin ingin mempertimbangkan untuk menggunakan algoritma yang lebih cekap.

Atas ialah kandungan terperinci Bagaimana untuk mengosongkan tatasusunan kosong dalam tatasusunan dua dimensi dalam 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