PHP에서 array_combine () 함수는 두 개의 배열을 새로운 연관 배열로 결합하는 데 사용되며, 하나의 배열은 키 이름으로, 다른 배열은 해당 값으로 배열됩니다. 구문은 다음과 같습니다.
array_combine(array $keys, array $values): array|false
병합이 성공하면 새 배열이 반환됩니다. 실패하면 거짓이 반환됩니다.
그렇다면 왜 Array_combine () 이 거짓을 반환하는 이유는 무엇입니까? 이 기사는 가능한 원인을 자세히 분석합니다.
array_combine () 의 두 배열 길이는 동일해야합니다. 키 어레이의 요소 수와 값 배열이 다른 경우 함수는 직접 False를 반환합니다.
샘플 코드 :
$keys = ['a', 'b', 'c'];
$values = [1, 2];
$result = array_combine($keys, $values);
var_dump($result); // bool(false)
여기 $ 키는 3 개의 요소가 있고 $ 값에는 2 개의 요소 만 있으므로 기능이 실패합니다.
통과 된 두 배열 중 하나가 비어 있으면 Array_combine () 도 False를 반환합니다.
예:
$keys = [];
$values = [1, 2, 3];
$result = array_combine($keys, $values);
var_dump($result); // bool(false)
여기 $ 키는 빈 배열이므로 False가 반환됩니다.
Array_combine () 에는 배열 요소 유형이 엄격하게 필요하지 않지만 키 어레이의 요소는 유효한 배열 키 (문자열 또는 정수) 여야합니다. 키 어레이에 불법 키가있는 경우 병합 결과는 기대치와 일치하지 않지만 일반적으로 거짓은 반환되지 않습니다. 그러나 배열 자체가 불법이거나 구조가 손상되면 예외도 발생할 수 있습니다.
예를 들어:
$keys = [null, true, 2]; // null 키로 빈 문자열로 변환됩니다.
$values = ['x', 'y', 'z'];
$result = array_combine($keys, $values);
var_dump($result);
이것은 일반적으로 False를 반환하지 않지만 키의 변환은 결과를 예상대로 만들지 않을 수 있습니다.
전달 된 매개 변수가 배열이 아닌 경우 오류가 트리거되거나 False가 반환됩니다. 두 매개 변수 모두 배열 유형인지 확인하십시오.
PHP의 매우 오래된 버전에서는 Array_combine () 이 다른 동작을 가질 수 있지만 PHP 5.0.0 이후로 기능은 비교적 안정적입니다.
두 배열의 길이가 일관되고 비어 있지 않은지 확인하십시오 . 이것이 거짓이 반환되는 가장 일반적인 이유입니다.
매개 변수 유형을 확인 하고 배열이 전달되었는지 확인하십시오.
배열 길이를보기 위해 count ()를 사용하는 것과 같은 디버그 정보를 인쇄하십시오 .
처리되지 않은 예외를 피하기 위해 오류 캡처 메커니즘을 사용하십시오 .
$keys = ['name', 'age', 'city'];
$values = ['Alice', 30, 'Beijing'];
$result = array_combine($keys, $values);
if ($result === false) {
echo "병합 실패,배열 길이가 일치하지 않거나 배열이 비어있을 수 있습니다.。";
} else {
print_r($result);
}
출력 결과 :
Array
(
[name] => Alice
[age] => 30
[city] => Beijing
)
array_combine () 의 매개 변수 제한과 일반적인 문제를 이해함으로써 잘못된 반환을 피하고 코드 견고성을 보장 할 수 있습니다.
관련 태그:
array_combine