Bagaimana untuk menentukan berapa banyak dimensi tatasusunan dalam php

百草
Lepaskan: 2023-07-12 15:55:38
asal
1610 orang telah melayarinya

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;;
Salin selepas log masuk

Hasil keluaran kod di atas:

数组1的维度:1
数组2的维度:2
数组3的维度:3
Salin selepas log masuk
Salin selepas log masuk

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;;
Salin selepas log masuk

Hasil keluaran kod di atas:

数组1的维度:1
数组2的维度:2
数组3的维度:3
Salin selepas log masuk
Salin selepas log masuk

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!

Label berkaitan:
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