Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menentukan sama ada ia adalah tatasusunan dua dimensi dalam php

Bagaimana untuk menentukan sama ada ia adalah tatasusunan dua dimensi dalam php

王林
王林asal
2023-05-07 14:17:09598semak imbas

PHP ialah bahasa pentafsiran bahagian pelayan yang digunakan secara meluas dalam pembangunan Web Aplikasinya dalam pembangunan Web juga sangat luas, seperti pembangunan laman web, pembangunan sistem, dll. Tatasusunan ialah jenis data yang sangat biasa digunakan dalam PHP, dan tatasusunan dua dimensi ialah jenis data yang lebih biasa. Jadi, bagaimanakah kita menentukan sama ada tatasusunan ialah tatasusunan dua dimensi? Artikel ini akan menjawab soalan ini untuk anda.

Pertama sekali, mari kita fahami dan semak konsep tatasusunan dalam PHP. Tatasusunan ialah senarai tersusun yang boleh menyimpan berbilang nilai di bawah satu nama pembolehubah. Dalam PHP, terdapat dua jenis tatasusunan iaitu tatasusunan umum dan tatasusunan bersekutu. Secara amnya, tatasusunan menyimpan elemen menggunakan nombor sebagai kunci tatasusunan, manakala tatasusunan bersekutu menyimpan elemen menggunakan nama kunci tersuai. Contohnya:

//定义一般数组
$num = array(1,2,3,4,5);
//定义关联数组
$user = array("name"=>"Tom","age"=>20,"gender"=>"male");

Kemudian terdapat tumpuan perhatian kita, tatasusunan dua dimensi. Tatasusunan dua dimensi merujuk kepada tatasusunan yang mengandungi pelbagai tatasusunan, yang juga dipanggil subarray. Setiap subarray boleh mengandungi beberapa nilainya sendiri. Dalam PHP, tatasusunan dua dimensi boleh ditakrifkan dalam cara berikut:

//使用array表示法初始化二维数组
$users = array(
              array("name"=>"Tom","age"=>20,"gender"=>"male"),
              array("name"=>"Lucy","age"=>22,"gender"=>"female"),
              array("name"=>"Jack","age"=>18,"gender"=>"male")
          );

//使用简单的方式初始化
$users[0] = array("name"=>"Tom","age"=>20,"gender"=>"male");
$users[1] = array("name"=>"Lucy","age"=>22,"gender"=>"female");
$users[2] = array("name"=>"Jack","age"=>18,"gender"=>"male");

//使用普通数组定义二维数组
$users = array(
              ["name"=>"Tom","age"=>20,"gender"=>"male"],
              ["name"=>"Lucy","age"=>22,"gender"=>"female"],
              ["name"=>"Jack","age"=>18,"gender"=>"male"]
          );

Sekarang, mari kita bincangkan tentang cara menentukan sama ada tatasusunan ialah tatasusunan dua dimensi. Penulis percaya bahawa terdapat dua kaedah biasa:

Kaedah 1: Gunakan fungsi is_array() dan fungsi count()

Fungsi is_array() boleh digunakan untuk mengesan sama ada pembolehubah ialah tatasusunan Jika Ia mengembalikan benar, bukan palsu. Fungsi count() boleh digunakan untuk mengira bilangan elemen dalam tatasusunan. Mengambil kesempatan daripada ciri-ciri kedua-dua fungsi ini, kita boleh menggunakan fungsi is_array() untuk menentukan sama ada tatasusunan adalah tatasusunan Jika ya, kemudian gunakan fungsi count() untuk menentukan sama ada tatasusunan mengandungi berbilang tatasusunan untuk menentukan sama ada tatasusunan tatasusunan ialah dua tatasusunan dimensi, seperti berikut:

function is_two_dimen_array($arr){
    //判断是否为数组
    if(is_array($arr)){
        foreach($arr as $v){
            if(!is_array($v)){
                //如果数组中每个元素不是数组
                return false;
            }
        }
        //如果每个元素都是数组,返回真
        return true; 
    }
    //如果不是数组,返回假
    return false;
}

//测试
$array = array(array(1,2),array(3,4));
var_dump(is_two_dimen_array($array)); //输出bool(true)

Dalam kod di atas, kita mula-mula menggunakan fungsi is_array() untuk menentukan sama ada tatasusunan itu Jika ia adalah tatasusunan, kemudian melintasi elemen dalam tatasusunan dan gunakan fungsi is_array() untuk menentukan sama ada ia adalah tatasusunan, mengembalikan benar jika setiap elemen ialah tatasusunan, sebaliknya mengembalikan palsu.

Kaedah 2: Gunakan fungsi array_filter() dan fungsi array_map()

Fungsi array_filter() boleh digunakan untuk menapis elemen dalam tatasusunan yang memenuhi syarat tertentu dan mengembalikan tatasusunan baharu yang terdiri daripada unsur-unsur ini. Fungsi array_map() boleh menggunakan fungsi panggil balik pada setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Kedua-dua fungsi ini boleh beroperasi dengan mudah pada tatasusunan berbilang dimensi. Pelaksanaan khusus adalah seperti berikut:

/**
 * 判断是否为二维数组
 * @param $arr 待判断的数组
 * @return bool
 */
function is_two_dimen_array($arr){
    //筛选该数组中元素不是数组的元素
    $result = array_filter($arr,"is_array");
    //对筛选出的元素应用array_filter()函数,判断是否还存在不是数组的元素
    $result = array_map("is_array",$result);
    //如果存在该数组中的元素不是数组,返回false,否则返回true
    return !(bool)array_sum($result);
}

//测试
$array = array(array(1,2),array(3,4));
var_dump(is_two_dimen_array($array)); //输出bool(true)

Dalam kod di atas, kita mula-mula menggunakan fungsi array_filter() untuk menapis tatasusunan, meninggalkan semua elemen tatasusunan yang memenuhi syarat fungsi is_array() dan kemudian gunakan fungsi array_map() untuk menapis tatasusunan Ia membuat pertimbangan Jika terdapat elemen yang bukan tatasusunan, elemen yang sepadan dalam set hasil adalah palsu, jika tidak, ia adalah benar. Akhir sekali, gunakan fungsi array_sum() untuk menambah set hasil Jika hasilnya sama dengan 0, kembalikan benar, jika tidak pulangkan palsu.

Ringkasnya, kedua-dua kaedah di atas boleh menentukan dengan mudah sama ada tatasusunan ialah tatasusunan dua dimensi. Dalam perkembangan sebenar, kita boleh memilih kaedah yang sesuai untuk digunakan mengikut situasi.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada ia adalah 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
Artikel sebelumnya:gelung php memanggil kaedahArtikel seterusnya:gelung php memanggil kaedah