>  기사  >  백엔드 개발  >  PHP에서 배열이 인덱스 배열인지 확인하는 방법

PHP에서 배열이 인덱스 배열인지 확인하는 방법

青灯夜游
青灯夜游원래의
2022-09-20 20:23:291574검색

판단 단계: 1. array_keys()를 사용하여 원래 배열의 모든 키 이름을 가져옵니다. 구문은 "array_keys(array)"입니다. 2. array_filter()를 사용하여 배열을 필터링합니다. 구문은 "function f( $v){return(is_string($ v));}$res=array_filter($keys,"f");"는 문자열 요소가 포함된 필터 배열을 반환합니다. 3. 필터 배열이 빈 배열인지 확인합니다. 비어 있으면 배열은 인덱스 배열입니다.

PHP에서 배열이 인덱스 배열인지 확인하는 방법

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

PHP에서는 인덱스 배열의 첨자(키 이름)가 숫자로 구성됩니다. 숫자가 아닌 배열인 경우 이 배열은 연관 배열(인덱스 배열이 아님)입니다.

따라서 배열이 인덱스 배열인지 확인하려면 배열의 키 이름이 모두 숫자인지 확인하기만 하면 됩니다.

구현 단계:

1단계: array_keys() 함수를 사용하여 원래 배열의 모든 키 이름을 가져옵니다.

array_keys() 함수는 배열의 모든 키 이름을 포함하는 새 배열을 반환합니다.

array_keys(array,value,strict)
Parameters Description
array 필수입니다. 배열을 지정합니다.
value 선택 사항입니다. 키 값을 지정하면 해당 키 값에 해당하는 키 이름만 반환됩니다.
strict 선택사항. 값 매개변수와 함께 사용됩니다. 가능한 값:
  • true - 지정된 키 값이 있는 키 이름을 반환합니다. 유형에 따라 숫자 5는 문자열 "5"와 동일하지 않습니다.
  • false - 기본값입니다. 유형에 관계없이 숫자 5는 문자열 "5"와 동일합니다.
<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$arr=array("r"=>"red",2,3,"hello",5,6);
var_dump($arr);
$keys=array_keys($arr);
var_dump($keys);
?>

PHP에서 배열이 인덱스 배열인지 확인하는 방법

2단계: array_filter() 및 is_string() 함수를 사용하여 배열을 필터링하고 키 배열의 문자열 요소를 반환합니다.

function f($v){
	 return(is_string($v));
}
$res=array_filter($keys,"f");
var_dump($res);

PHP에서 배열이 인덱스 배열인지 확인하는 방법

는 문자열 요소를 반환합니다. 필터 배열을 포함

3단계: 필터 배열이 빈 배열인지 확인

$res==[]
  • 비어 있으면 배열은 인덱스 배열입니다.

  • 비어 있지 않으면 배열은 그렇지 않습니다. 인덱스 배열이지만 연관 배열

구현 코드:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
function f($v){
		 return(is_string($v));
}
function fun($arr){
	$keys=array_keys($arr);
	
	$res=array_filter($keys,"f");
	if($res==[]){
		echo "数组是索引数组<br>";
	}else{
		echo "数组不是索引数组,是关联数组<br>";
	}
}


$arr=array("r"=>"red",2,3,"hello",5,6);
var_dump($arr);
fun($arr);
$arr=array(1,2,3,"hello",5,6);
var_dump($arr);
fun($arr);
?>

PHP에서 배열이 인덱스 배열인지 확인하는 방법

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

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

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