728x90
반응형
질문 : PHP 배열이 연관 또는 순차적인지 확인하는 방법은 무엇입니까?
PHP는 모든 배열을 연관성으로 취급하므로 내장 함수가 없습니다. 누구든지 배열에 숫자 키만 포함되어 있는지 확인하는 상당히 효율적인 방법을 추천 할 수 있습니까?
기본적으로 나는 이것을 구별 할 수 있기를 원합니다.
$sequentialArray = [
'apple', 'orange', 'tomato', 'carrot'
];
이:
$assocArray = [
'fruit1' => 'apple',
'fruit2' => 'orange',
'veg1' => 'tomato',
'veg2' => 'carrot'
];
답변
똑같지 않은 두 가지 질문을했습니다.
- 첫째, 배열에 숫자 키만 있는지 확인하는 방법
- 둘째, 배열에 0부터 시작하는 순차적 숫자 키가 있는지 확인하는 방법
실제로 필요한 행동을 고려하십시오. (둘 중 하나가 귀하의 목적에 맞을 수 있습니다.)
첫 번째 질문 (단순히 모든 키가 숫자인지 확인)은 Captain kurO가 잘 대답합니다 .
두 번째 질문 (배열이 제로 인덱스 및 순차적인지 확인)의 경우 다음 함수를 사용할 수 있습니다.
function isAssoc(array $arr)
{
if (array() === $arr) return false;
return array_keys($arr) !== range(0, count($arr) - 1);
}
var_dump(isAssoc(['a', 'b', 'c'])); // false
var_dump(isAssoc(["0" => 'a', "1" => 'b', "2" => 'c'])); // false
var_dump(isAssoc(["1" => 'a', "0" => 'b', "2" => 'c'])); // true
var_dump(isAssoc(["a" => 'a', "b" => 'b', "c" => 'c'])); // true
출처 : https://stackoverflow.com/questions/173400/how-to-check-if-php-array-is-associative-or-sequential
728x90
반응형
'프로그래밍 언어 > PHP' 카테고리의 다른 글
htmlentities () vs htmlspecialchars () (0) | 2021.07.27 |
---|---|
PHP에서 정적 코드 분석을 수행하는 방법 (0) | 2021.07.27 |
PHP에서 주어진 키의 값으로 연관 배열의 배열을 정렬하는 방법 (0) | 2021.07.21 |
PHP에서 "Headers already sent"오류를 수정하는 방법 (0) | 2021.07.21 |
command line에서 사용하는 php.ini 파일을 찾는 방법 (0) | 2021.07.20 |