Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menentukan sama ada array kosong dalam php

Bagaimana untuk menentukan sama ada array kosong dalam php

PHPz
PHPzasal
2023-04-20 13:54:33972semak imbas

Dalam PHP, kadangkala anda perlu menentukan sama ada tatasusunan kosong. Biasanya, kami menggunakan fungsi empty() atau count() untuk menentukan sama ada tatasusunan kosong, tetapi jika nilai semua elemen dalam tatasusunan adalah NULL atau 0, fungsi ini mungkin mendapat hasil yang salah. Oleh itu, artikel ini akan memperkenalkan cara untuk menentukan dengan tepat sama ada tatasusunan kosong.

1. Had fungsi kosong()

Fungsi kosong() ialah fungsi yang biasa digunakan dalam PHP untuk menentukan sama ada pembolehubah kosong. Ia boleh menentukan sama ada pembolehubah kosong Jika pembolehubah tidak ditentukan atau nilainya palsu, '', 0, '0', null, tatasusunan(), dll., ia mengembalikan benar, jika tidak ia mengembalikan palsu. Oleh itu, apabila menilai sama ada tatasusunan kosong, kita biasanya menulis seperti ini:

$arr = array();
if(empty($arr)) {
    echo '数组为空';
} else {
    echo '数组不为空';
}

Cara ini kelihatan mudah, tetapi apabila nilai semua elemen dalam tatasusunan adalah NULL atau 0, kosong() fungsi akan kembali benar, yang jelas bukan hasil yang kita inginkan. Contohnya:

$arr = array(null, 0, 0.0, false, '');
if(empty($arr)) {
    echo '数组为空';
} else {
    echo '数组不为空';
}

Kod di atas akan mengembalikan tatasusunan sebagai kosong, yang tidak betul.

2. Masalah dengan fungsi count()

Kaedah lain yang biasa digunakan untuk menentukan sama ada tatasusunan kosong ialah menggunakan fungsi count(), yang boleh mengembalikan bilangan elemen dalam sesuatu tatasusunan. Jika tiada unsur dalam tatasusunan, fungsi count() mengembalikan 0, jika tidak, ia mengembalikan bilangan elemen dalam tatasusunan. Oleh itu, kod untuk menentukan sama ada tatasusunan kosong biasanya kelihatan seperti ini:

$arr = array();
if(count($arr) == 0) {
    echo '数组为空';
} else {
    echo '数组不为空';
}

Walau bagaimanapun, apabila nilai semua elemen dalam tatasusunan adalah NULL atau 0, fungsi count() juga akan mengembalikan 0 , yang boleh membawa kepada salah penilaian. Contohnya:

$arr = array(null, 0, 0.0, false, '');
if(count($arr) == 0) {
    echo '数组为空';
} else {
    echo '数组不为空';
}

Kod di atas akan mengembalikan tatasusunan sebagai kosong, yang bukan hasil yang kita inginkan.

3 Tentukan dengan tepat sama ada tatasusunan kosong

Untuk menyelesaikan masalah di atas, kita perlu menentukan dengan tepat sama ada tatasusunan kosong. Cara yang tepat untuk menentukan ialah menggunakan gelung foreach untuk melintasi tatasusunan dan semak sama ada nilai setiap elemen dalam tatasusunan kosong. Jika elemen bukan kosong ditandakan, tatasusunan itu tidak kosong, jika tidak tatasusunan itu kosong. Berikut ialah contoh kod:

function is_empty_array($arr) {
    foreach($arr as $value) {
        if(!empty($value)) {
            return false;
        }
    }
    return true;
}

$arr = array(null, 0, 0.0, false, '');
if(is_empty_array($arr)) {
    echo '数组为空';
} else {
    echo '数组不为空';
}

Kod di atas akan mengeluarkan "array is empty", iaitu hasil yang betul yang kami perlukan.

Di atas ialah kaedah PHP yang diperkenalkan dalam artikel ini untuk menentukan sama ada tatasusunan tidak kosong Menggunakan gelung foreach untuk melintasi tatasusunan boleh mengelakkan pengehadan fungsi empty() dan count() dan menentukan dengan tepat sama ada. tatasusunan kosong.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada array kosong 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