


Bagaimana untuk menentukan berapa banyak dimensi tatasusunan dalam php
Cara PHP menentukan berapa banyak dimensi tatasusunan: 1. Fungsi menentukan dimensi tatasusunan dengan memanggil dirinya secara rekursif dan menggunakan fungsi "foreach()" untuk menggelung melalui semua elemen. dimensi akan ditambah satu; 2. Ia dilaksanakan dengan menukar tatasusunan kepada rentetan JSON melalui fungsi "json_encode()", dan kemudian menggunakan ungkapan biasa untuk menentukan kedalaman hierarki rentetan JSON.
Sistem pengendalian tutorial ini: sistem windows10, versi PHP 8.1.3, komputer DELL G3.
Kaedah untuk menentukan berapa banyak dimensi tatasusunan:
Kaedah 1: Gunakan rekursi untuk menentukan dimensi tatasusunan
Fungsi dalam contoh kod di bawah menentukan dimensi tatasusunan dengan memanggil dirinya secara rekursif semua elemen, ia masih satu Array, tingkatkan dimensi dengan satu.
/** * 判断数组维度 * * @param array $arr * @return int */ function array_dimension($arr) { $dimension = 0; if (is_array($arr)) { foreach ($arr as $item) { if (is_array($item)) { $sub_dimension = array_dimension($item); if ($sub_dimension > $dimension) { $dimension = $sub_dimension; } } } $dimension++; } return $dimension; } // 示例数据 $arr1 = array(1, 2, 3); $arr2 = array(array(1, 2), array(3, 4)); $arr3 = array(array(array(1, 2), array(3, 4)), array(array(5, 6), array(7, 8))); echo '数组1的维度:' . array_dimension($arr1) . '<br>'; echo '数组2的维度:' . array_dimension($arr2) . '<br>'; echo '数组3的维度:' . array_dimension($arr3) . '<br>';
Hasil keluaran kod di atas:
数组1的维度:1 数组2的维度:2 数组3的维度:3
Kaedah 2: Tukar kepada format JSON untuk menentukan dimensi tatasusunan
Fungsi dalam contoh kod di bawah menukar tatasusunan kepada rentetan JSON, dan kemudian menentukan kedalaman hierarki JSON rentetan melalui ungkapan biasa direalisasikan.
/** * 判断数组维度 * * @param array $arr * @return int */ function array_dimension($arr) { $json_arr = json_encode($arr, JSON_UNESCAPED_UNICODE); $max_depth = 1; if (preg_match_all('/(?:^|\{|\,)\s*(\[(?R)*\]|\{(?R)*\})\s*(?:(?=\:)|$)/', $json_arr, $m)) { foreach ($m[1] as $val) { $depth = substr_count(str_replace(["[", "{", "]", "}"], "", $val), ',') + 1; if ($depth > $max_depth) { $max_depth = $depth; } } } return $max_depth; } // 示例数据 $arr1 = array(1, 2, 3); $arr2 = array(array(1, 2), array(3, 4)); $arr3 = array(array(array(1, 2), array(3, 4)), array(array(5, 6), array(7, 8))); echo '数组1的维度:' . array_dimension($arr1) . '<br>'; echo '数组2的维度:' . array_dimension($arr2) . '<br>'; echo '数组3的维度:' . array_dimension($arr3) . '<br>';
Hasil keluaran kod di atas:
数组1的维度:1 数组2的维度:2 数组3的维度:3
Di atas adalah dua kaedah yang biasa digunakan untuk menentukan dimensi tatasusunan Ia agak mudah untuk dilaksanakan Anda boleh memilih kaedah yang sesuai mengikut keperluan anda sendiri.
Atas ialah kandungan terperinci Bagaimana untuk menentukan berapa banyak dimensi tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan
