> 백엔드 개발 > PHP 문제 > PHP에서 배열의 차원 수를 확인하는 방법

PHP에서 배열의 차원 수를 확인하는 방법

百草
풀어 주다: 2023-07-12 15:55:38
원래의
1634명이 탐색했습니다.

PHP가 배열의 차원 수를 결정하는 방법: 1. 함수는 자신을 재귀적으로 호출하여 배열의 차원을 결정하고 "foreach()" 함수를 사용하여 모든 요소를 ​​반복합니다. 2. "json_encode()" 함수를 통해 배열을 JSON 문자열로 변환한 후 정규 표현식을 사용하여 JSON 문자열의 계층적 깊이를 결정하는 방식으로 구현됩니다.

PHP에서 배열의 차원 수를 확인하는 방법

이 튜토리얼의 운영 체제: windows10 시스템, PHP 버전 8.1.3, DELL G3 컴퓨터.

배열의 차원 수를 결정하는 방법:

방법 1: 재귀를 사용하여 배열 크기 결정

아래 예제 코드의 함수는 루프를 반복한 후 자신을 호출하여 배열의 차원을 결정합니다. 모든 요소는 여전히 하나의 배열이므로 차원을 1만큼 늘립니다.

/**
 * 判断数组维度
 * 
 * @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;;
로그인 후 복사

위 코드 출력 결과:

数组1的维度:1
数组2的维度:2
数组3的维度:3
로그인 후 복사
로그인 후 복사

방법 2: JSON 형식으로 변환하여 배열 크기 결정

아래 예제 코드의 함수는 배열을 JSON 문자열로 변환한 다음 JSON의 계층적 깊이를 결정합니다. 정규식을 통해 문자열을 구현했습니다.

/**
 * 判断数组维度
 * 
 * @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;;
로그인 후 복사

위 코드 출력 결과:

数组1的维度:1
数组2的维度:2
数组3的维度:3
로그인 후 복사
로그인 후 복사

위는 배열 크기를 결정하는 데 일반적으로 사용되는 두 가지 방법으로 구현하기가 비교적 간단합니다. 필요에 따라 적절한 방법을 선택할 수 있습니다.

위 내용은 PHP에서 배열의 차원 수를 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿