>백엔드 개발 >PHP 문제 >PHP에서 1차원 배열인지 2차원 배열인지 확인하는 방법

PHP에서 1차원 배열인지 2차원 배열인지 확인하는 방법

青灯夜游
青灯夜游원래의
2022-04-11 20:32:274299검색

PHP에서는 count() 함수를 사용하여 배열의 길이를 얻을 수 있습니다. 두 번째 매개변수를 생략하면 한 차원의 요소 수만 얻을 수 있습니다. 생략된 매개변수와 생략되지 않은 매개변수를 비교합니다. 길이가 동일한 경우 구문은 "count($arr)== count($arr,1)"입니다.

PHP에서 1차원 배열인지 2차원 배열인지 확인하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP에서는 count() 함수를 사용하여 판단할 수 있습니다.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$array = array("php", 11, &#39;&#39;, 12, "PHP中文网",13,"green",2021,"mysql","14",15); 
	if (count($array) == count($array, 1)) {
	    echo &#39;是一维数组&#39;;
	} else {
	    echo &#39;是二维数组&#39;;
}
?>

PHP에서 1차원 배열인지 2차원 배열인지 확인하는 방법

해결 방법의 원리:

count ( mixed $var [, int $mode ] ) – 배열의 셀 수 또는 개체의 속성 수를 계산합니다

$mode: 선택적 매개 변수이며 생략할 수 있습니다.

  • $mode 매개변수가 생략되거나 COUNT_NORMAL 또는 0으로 설정된 경우 count() 함수는 다차원 배열을 감지하지 않습니다.

  • $mode가 COUNT_RECURSIVE 또는 1로 설정된 경우 count() 함수는 배열을 재귀적으로 계산합니다. 의 요소 수는 다차원 배열의 요소 수를 계산하는 데 특히 유용합니다.

$mode 매개변수를 생략하면 count는 다차원 배열을 감지하지 못하고 한 차원의 요소 수만 가져옵니다.

그래서 $mode 매개변수를 생략했을 때 얻은 길이가 같은지 비교하기만 하면 되고, $mode 매개변수를 생략하지 않았을 때 1차원 배열인지 2차원 배열인지 판단할 수 있습니다.

  • $mode 매개변수 예:

<?php
header("Content-type:text/html;charset=utf-8");
$arr= array
("张三",
25,
    array("高数","PHP教程","英语"),
);
//输出语句
echo "数组长度为:".count($arr,1);
echo "<br>不递归检测数组,长度为:".count($arr);
?>

Output:

数组长度为:6
不递归检测数组,长度为:3

위 출력 결과를 읽고 나면 배열에 요소가 5개("Zhang San", 25, "High)만 있는 것은 아닙니다. Number" ", "PHP Tutorial", "English"), 결과에 배열 길이가 5가 아닌 6으로 표시되는 이유는 무엇입니까?

실제로는 이 때 count() 함수가 2차원 배열의 모든 요소를 ​​계산하기 위해 반복되기 때문입니다. "array("高数","PHP tutorial","English")"는 다음과 같이 계산됩니다. 요소("High Mathematics", "PHP Tutorial", "English")가 다시 계산되므로 최종 결과는 6입니다.

PHP에서 1차원 배열인지 2차원 배열인지 확인하는 방법

추천: "PHP 비디오 튜토리얼"

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.