Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengosongkan nilai nol dalam tatasusunan php

Bagaimana untuk mengosongkan nilai nol dalam tatasusunan php

PHPz
PHPzasal
2023-04-26 10:24:57849semak imbas

Dalam pembangunan PHP, kita selalunya perlu memproses data tatasusunan, dan mengosongkan nilai nol ​​​​adalah tugas biasa. Nilai nol boleh merujuk kepada rentetan kosong, nilai nol atau nilai yang tidak ditentukan. Dalam artikel ini, kami akan meneroka cara mengosongkan nilai nol daripada tatasusunan menggunakan fungsi PHP.

1. Fungsi PHP array_filter()

PHP menyediakan fungsi array_filter(), yang boleh menapis tatasusunan dan mengembalikan tatasusunan baru yang ditapis. Anda boleh lulus fungsi panggil balik untuk menentukan nilai yang dikekalkan.

Apabila menggunakan fungsi array_filter() untuk mengosongkan nilai kosong dalam tatasusunan, anda perlu memberi perhatian kepada dua perkara berikut:

  1. Luluskan fungsi panggil balik: Kerana keadaan penapisan adalah berbeza, kita perlu lulus fungsi panggil balik untuk menilai sama ada elemen tatasusunan semasa adalah nol. Fungsi panggil balik boleh disesuaikan untuk menentukan sama ada untuk mengekalkan elemen dengan menilai setiap elemen tatasusunan. Berikut ialah kod sampel yang menggunakan fungsi panggil balik tersuai untuk mengosongkan nilai kosong dalam tatasusunan:
function removeEmptyValues($value) {
    return !empty($value) || $value === 0;
}

$array = array("", "test", null, " ", 0, "0");
$result = array_filter($array, "removeEmptyValues");

print_r($result);

Hasil output ialah:

Array
(
    [1] => test
    [3] =>  
    [4] => 0
    [5] => 0
)

The removeEmptyValues () fungsi di sini berlalu Tentukan sama ada elemen tatasusunan ialah rentetan kosong, nilai nol atau 0 untuk menentukan sama ada untuk mengekalkan elemen tersebut. Ambil perhatian bahawa anda perlu menggunakan === dan bukannya == untuk membandingkan 0 dan rentetan kosong dengan ketat.

  1. Lulus nama kunci tatasusunan: Secara lalai, apabila anda menggunakan fungsi array_filter() untuk mengosongkan nilai kosong ​​​​dalam tatasusunan, fungsi itu akan mengindeks semula tatasusunan baharu, iaitu untuk mengatakan, nama kunci dalam tatasusunan asal mungkin akan dipadamkan. Jika anda ingin mengekalkan nama kunci tatasusunan asal, anda harus menyerahkan nama kunci tatasusunan kepada fungsi panggil balik, seperti berikut:
function removeEmptyValues($key, $value) {
    return !empty($value) || $value === 0;
}

$array = array("name" => "", "age" => null, "sex" => "male");
$result = array_filter($array, "removeEmptyValues", ARRAY_FILTER_USE_BOTH);

print_r($result);

Hasil output ialah:

Array
(
    [sex] => male
)

Dalam panggilan balik Dalam fungsi, kami lulus dua parameter $key dan $value mewakili nama kunci elemen tatasusunan semasa dan $value mewakili nilai elemen tatasusunan. Dalam kes ini, kita perlu menambah parameter ketiga ARRAY_FILTER_USE_BOTH, yang bermaksud menggunakan fungsi panggil balik untuk menghantar nama kunci dan nilai kunci.

2. Gunakan foreach()

Selain fungsi array_filter(), kita juga boleh menggunakan gelung foreach() untuk mengosongkan nilai null ​​​​dalam tatasusunan. Kaedah ini mengitar elemen tatasusunan satu demi satu untuk mengosongkan nilai nol. Kod berikut menunjukkan cara menggunakan foreach() untuk mengosongkan nilai nol dalam tatasusunan:

$array = array("", "test", null, " ", 0, "0");
$result = array();

foreach ($array as $value) {
    if (!empty($value) || $value === 0) {
        $result[] = $value;
    }
}
print_r($result);

Hasil keluarannya ialah:

Array
(
    [0] => test
    [1] =>  
    [2] => 0
    [3] => 0
)

Cara ini berulang pada elemen tatasusunan dengan menggelung dan menggunakan pernyataan if untuk menentukan sama ada elemen itu nilai nol, dan jika ia bukan nilai null, tambahkannya pada tatasusunan baharu.

3. Gunakan fungsi array_map()

PHP juga menyediakan satu lagi fungsi array_map(), yang boleh menggunakan fungsi panggil balik yang ditentukan untuk setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Kita boleh mengosongkan nilai nol daripada tatasusunan dengan menghantar fungsi panggil balik. Berikut ialah kod sampel yang menggunakan fungsi array_map() untuk mengosongkan nilai nol tatasusunan:

function removeEmptyValues($value) {
    return !empty($value) || $value === 0;
}

$array = array("", "test", null, " ", 0, "0");
$result = array_map("removeEmptyValues", $array);

print_r($result);

Hasil output ialah:

Array
(
    [0] => 
    [1] => test
    [2] => 
    [3] =>  
    [4] => 
    [5] => 0
)

Perhatikan bahawa apabila menggunakan array_map() berfungsi untuk mengosongkan nilai nol tatasusunan, nama kunci indeks dalam tatasusunan asal tidak akan dikekalkan, jadi hanya nilai elemen yang dikekalkan dalam hasil keluaran.

Ringkasan

Dalam pembangunan PHP, kita selalunya perlu mengosongkan nilai null ​​​​dalam tatasusunan. Artikel ini memperkenalkan tiga kaedah biasa: menggunakan array_filter(), foreach() loop dan array_map() fungsi. Antaranya, fungsi array_filter() adalah yang paling banyak digunakan antara tiga kaedah, dan fungsi panggil balik boleh disesuaikan untuk memenuhi keperluan yang berbeza. Jika anda perlu mengekalkan nama kunci tatasusunan asal, anda boleh menggunakan parameter ketiga array_filter() atau fungsi panggil balik tersuai dan lulus nama kunci dan nilai kunci sebagai dua parameter. Jika anda perlu mengekalkan nama kunci dan indeks tatasusunan asal, anda boleh menggunakan foreach() untuk menggelung melalui tatasusunan dan menentukan sama ada unsur-unsur tersebut adalah batal satu demi satu. Apabila menggunakan fungsi array_map() untuk mengosongkan nilai kosong, ambil perhatian bahawa nama kunci indeks tatasusunan output mungkin ditetapkan semula, jadi jika anda perlu mengekalkan nama kunci tatasusunan asal, anda perlu mengendalikannya secara berasingan.

Atas ialah kandungan terperinci Bagaimana untuk mengosongkan nilai nol dalam tatasusunan 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