cari
Rumahpembangunan bahagian belakangmasalah PHPBagaimana 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.

Bagaimana untuk menentukan berapa banyak dimensi tatasusunan dalam php

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 &#39;数组1的维度:&#39; . array_dimension($arr1) . &#39;<br>&#39;;
echo &#39;数组2的维度:&#39; . array_dimension($arr2) . &#39;<br>&#39;;
echo &#39;数组3的维度:&#39; . array_dimension($arr3) . &#39;<br>&#39;;

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(&#39;/(?:^|\{|\,)\s*(\[(?R)*\]|\{(?R)*\})\s*(?:(?=\:)|$)/&#39;, $json_arr, $m)) {
    foreach ($m[1] as $val) {
      $depth = substr_count(str_replace(["[", "{", "]", "}"], "", $val), &#39;,&#39;) + 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 &#39;数组1的维度:&#39; . array_dimension($arr1) . &#39;<br>&#39;;
echo &#39;数组2的维度:&#39; . array_dimension($arr2) . &#39;<br>&#39;;
echo &#39;数组3的维度:&#39; . array_dimension($arr3) . &#39;<br>&#39;;

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

MantisBT

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

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan