Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk memadam pasangan nilai nol dalam tatasusunan dua dimensi dalam php

Bagaimana untuk memadam pasangan nilai nol dalam tatasusunan dua dimensi dalam php

PHPz
PHPzasal
2023-04-23 17:48:54735semak imbas

Apabila membangun dengan PHP, anda sering menghadapi keperluan untuk mengendalikan tatasusunan. Array ialah struktur data biasa dan juga digunakan secara meluas dalam PHP. Tatasusunan dua dimensi ialah jenis tatasusunan khas yang unsur-unsurnya juga tatasusunan. Dalam pembangunan sebenar, kadangkala kita perlu memadamkan pasangan nilai nol dalam tatasusunan dua dimensi, yang memerlukan penggunaan beberapa fungsi tatasusunan PHP untuk mencapainya.

1. Apakah tatasusunan dua dimensi

Jika unsur tatasusunan juga merupakan tatasusunan, maka tatasusunan itu ialah tatasusunan dua dimensi. Dalam PHP, tatasusunan dua dimensi boleh ditakrifkan seperti berikut:

$arr = array(
    array(1,2,3),
    array(4,5,6),
    array(7,8,9)
);

Kod di atas mencipta tatasusunan dua dimensi yang mengandungi 3 elemen, setiap elemen ialah tatasusunan satu dimensi yang mengandungi 3 elemen .

2. Padamkan pasangan nilai nol dalam tatasusunan dua dimensi

Dalam pembangunan sebenar, kadangkala kita perlu memadamkan pasangan nilai nol dalam tatasusunan dua dimensi. Pasangan nilai nol yang dipanggil bermakna bahawa nilai yang sepadan dengan kunci dalam tatasusunan ialah rentetan kosong, nol, 0 atau tiada nilai. Kita boleh menggunakan pelbagai fungsi tatasusunan PHP untuk mencapai tujuan ini.

  1. Gunakan fungsi array_filter untuk menapis

Fungsi array_filter boleh digunakan untuk menapis semua pasangan nilai nol dalam tatasusunan parameter pertamanya ialah array yang perlu ditapis. Kedua-dua parameter ialah fungsi panggil balik yang digunakan untuk menapis setiap elemen dalam tatasusunan.

function filterEmpty($arr) {
    foreach($arr as $key=>$value) {
        if(is_array($value)) {
            $arr[$key] = filterEmpty($value);
        }
    }

    return array_filter($arr);
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

$arr = filterEmpty($arr);
var_dump($arr);

Kod di atas mentakrifkan fungsi filterEmpty untuk menapis pasangan nilai nol dalam tatasusunan dua dimensi Ia menggunakan fungsi rekursif untuk melintasi setiap elemen dalam tatasusunan fungsi filterEmpty dipanggil. Seterusnya, gunakan fungsi array_filter untuk menapis setiap elemen untuk mendapatkan tatasusunan yang tidak mengandungi pasangan nilai nol.

  1. Gunakan fungsi array_walk

Fungsi array_walk boleh mengulang setiap elemen dalam tatasusunan dan melaksanakan operasi khusus padanya. Kita boleh menentukan fungsi panggil balik untuk menilai setiap elemen dan memadam pasangan nilai nol.

function walkEmpty(&$value, $key) {
    if(is_array($value)) {
        $value = array_filter($value);
    }

    if(empty($value)) {
        unset($value);
    }
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

array_walk($arr, 'walkEmpty');
var_dump($arr);

Kod di atas mentakrifkan fungsi walkEmpty sebagai fungsi panggil balik dan menggunakan fungsi array_walk untuk melintasi setiap elemen dalam tatasusunan $arr dan menilainya. Jika elemen ialah tatasusunan, mula-mula gunakan fungsi array_filter untuk menapis pasangan nilai nol dalam tatasusunan. Seterusnya, tentukan sama ada elemen kosong Jika ia kosong, gunakan fungsi unset untuk memadamkan elemen daripada tatasusunan.

  1. Gunakan gelung foreach untuk melintasi tatasusunan

Kita juga boleh menggunakan gelung foreach untuk melintasi tatasusunan dan menilai setiap elemen.

function deleteEmpty($arr) {
    foreach($arr as $key=>$value) {
        if(is_array($value)) {
            $arr[$key] = deleteEmpty($value);
        }

        if(empty($value)) {
            unset($arr[$key]);
        }
    }

    return $arr;
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

$arr = deleteEmpty($arr);
var_dump($arr);

Kod di atas mentakrifkan fungsi deleteEmpty, yang menggunakan gelung foreach untuk melintasi setiap elemen dalam tatasusunan $arr dan menilainya. Jika elemen ialah tatasusunan, panggil fungsi deleteEmpty itu sendiri untuk meneruskan merentasi. Seterusnya, tentukan sama ada elemen kosong Jika ia kosong, gunakan fungsi unset untuk memadamkan elemen daripada tatasusunan.

3. Ringkasan

Tatasusunan dua dimensi ialah struktur data biasa yang sering digunakan dalam pembangunan PHP. Memadam pasangan nilai nol dalam tatasusunan dua dimensi juga merupakan operasi biasa Artikel di atas memperkenalkan tiga kaedah pelaksanaan, menggunakan fungsi array_filter, fungsi array_walk dan gelung foreach untuk melintasi tatasusunan. Kita boleh memilih kaedah yang sesuai dengan kita berdasarkan keperluan khusus kita.

Atas ialah kandungan terperinci Bagaimana untuk memadam pasangan nilai nol dalam tatasusunan dua dimensi dalam php. 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