PHP menentukan sama ada ia adalah tatasusunan dua dimensi

王林
Lepaskan: 2023-05-19 21:50:09
asal
1203 orang telah melayarinya

Dalam PHP, tatasusunan ialah jenis data yang sangat penting yang boleh menyimpan set elemen tersusun, yang boleh berupa rentetan, integer, nombor titik terapung, nilai Boolean, dsb. Dalam PHP, tatasusunan dibahagikan kepada dua jenis: tatasusunan satu dimensi dan tatasusunan berbilang dimensi. Tatasusunan satu dimensi ialah tatasusunan biasa, yang mengandungi hanya satu dimensi, manakala tatasusunan berbilang dimensi ialah tatasusunan yang mengandungi dua atau lebih dimensi.

Kadangkala kita perlu menentukan sama ada tatasusunan ialah tatasusunan dua dimensi, kerana terdapat perbezaan besar antara tatasusunan dua dimensi dan tatasusunan satu dimensi Jika kita tidak membezakan antara tatasusunan itu, ada ralat mungkin berlaku semasa runtime. Mari kita bincangkan cara untuk menentukan sama ada tatasusunan ialah tatasusunan dua dimensi.

Kaedah 1: Gunakan fungsi kiraan

Dalam PHP, anda boleh menggunakan fungsi kiraan untuk mendapatkan panjang tatasusunan, iaitu bilangan elemen dalam tatasusunan. Jika tatasusunan ini ialah tatasusunan satu dimensi, maka fungsi kiraan mengembalikan bilangan elemen tatasusunan; jika tatasusunan ini ialah tatasusunan berbilang dimensi, maka fungsi kiraan mengembalikan bilangan unsur-unsur dimensi pertama tatasusunan berbilang dimensi.

Oleh itu, kita boleh menentukan sama ada tatasusunan ialah tatasusunan dua dimensi dengan menilai sama ada panjang elemen pertama tatasusunan adalah sama dengan panjang tatasusunan. Kod khusus adalah seperti berikut:

function is_two_dimensional_array($array)
{
    if (!is_array($array)) {
        return false;
    }
    if (!isset($array[0]) || !is_array($array[0])) {
        return false;
    }
    return (count($array) == count($array, COUNT_RECURSIVE) / count($array));
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menggunakan fungsi is_array untuk menyemak sama ada parameter ialah tatasusunan, dan jika tidak, kembalikan palsu secara langsung. Seterusnya, kami menggunakan fungsi isset untuk menyemak sama ada elemen pertama tatasusunan wujud dan jika ia adalah tatasusunan, dan jika tidak, mengembalikan palsu. Akhir sekali, kami menggunakan fungsi kiraan untuk mengira hasil bagi panjang keseluruhan tatasusunan dan panjang elemen pertama Jika ia adalah sama, ia bermakna ia adalah tatasusunan dua dimensi, jika tidak.

Berikut ialah kes ujian:

$array1 = array();
$array2 = array('a', 'b', 'c');
$array3 = array(array('a', 'b'), array('c', 'd'));
$array4 = array(array('a', 'b'), 'c');
var_dump(is_two_dimensional_array($array1)); // false
var_dump(is_two_dimensional_array($array2)); // false
var_dump(is_two_dimensional_array($array3)); // true
var_dump(is_two_dimensional_array($array4)); // false
Salin selepas log masuk
Salin selepas log masuk

Kaedah 2: Gunakan fungsi foreach

Selain menggunakan fungsi kiraan, anda juga boleh menggunakan fungsi foreach untuk melintasi tatasusunan dan tentukan sama ada Mengandungi elemen tatasusunan Jika dijumpai, ia boleh ditentukan bahawa tatasusunan ialah tatasusunan dua dimensi.

Kod khusus adalah seperti berikut:

function is_two_dimensional_array($array)
{
    if (!is_array($array)) {
        return false;
    }

    foreach ($array as $element) {
        if (is_array($element)) {
            return true;
        }
    }

    return false;
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menyemak sama ada parameter ialah tatasusunan, dan jika tidak, kembalikan palsu secara langsung. Seterusnya, kami menggunakan fungsi foreach untuk merentasi tatasusunan dan menyemak sama ada setiap elemen ialah tatasusunan Jika ya, ini bermakna tatasusunan itu ialah tatasusunan dua dimensi dan mengembalikan benar secara langsung. Jika elemen tatasusunan tidak ditemui pada penghujung traversal, false dikembalikan.

Berikut ialah kes ujian:

$array1 = array();
$array2 = array('a', 'b', 'c');
$array3 = array(array('a', 'b'), array('c', 'd'));
$array4 = array(array('a', 'b'), 'c');
var_dump(is_two_dimensional_array($array1)); // false
var_dump(is_two_dimensional_array($array2)); // false
var_dump(is_two_dimensional_array($array3)); // true
var_dump(is_two_dimensional_array($array4)); // false
Salin selepas log masuk
Salin selepas log masuk

Tidak kira kaedah yang digunakan, agak mudah untuk menentukan sama ada tatasusunan ialah tatasusunan dua dimensi. Walau bagaimanapun, dalam pembangunan sebenar, kita juga harus memberi perhatian kepada faktor-faktor lain seperti subskrip tatasusunan dan jenis elemen untuk memastikan program dapat berjalan dengan normal.

Atas ialah kandungan terperinci PHP menentukan sama ada ia adalah tatasusunan dua dimensi. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!