현재 위치: > 최신 기사 목록> JSON 데이터로 Array_combine을 호출 할 때 일반적인 오류 분석

JSON 데이터로 Array_combine을 호출 할 때 일반적인 오류 분석

M66 2025-05-13

PHP 프로그래밍에서 array_combine 함수는 두 개의 숫자를 연관 배열로 결합하는 데 사용되며, 첫 번째 배열의 요소는 키로 및 두 번째 배열의 요소를 값으로 값으로 결합합니다. 그러나 일부 시나리오에서 특히 JSON 데이터를 사용할 때는 몇 가지 일반적인 오류가 발생할 수 있습니다. 이 기사는 Array_combine 기능을 사용할 때 발생할 수있는 가능한 오류를 분석하고 해당 솔루션을 제공합니다.

1. 오류 : 배열의 길이는 일치하지 않습니다

오류 메시지 :
 Warning: array_combine() expects parameter 1 to be an array, null given
설명하다:

Array_combine 함수는 두 배열의 요소 수가 동일해야합니다. 두 배열의 길이가 일치하지 않으면 함수가 오류를보고하고 경고를 반환합니다.

해결책:

array_combine을 호출하기 전에 두 배열의 길이가 같은지 확인해야합니다. count () 함수를 통해 배열의 길이를 확인할 수 있습니다.

 <?php
$json_data = '{"keys":["id", "name", "age"], "values":["101", "John", "25"]}';
$data = json_decode($json_data, true);

if (count($data['keys']) === count($data['values'])) {
    $result = array_combine($data['keys'], $data['values']);
    print_r($result);
} else {
    echo "실수:배열의 길이는 일치하지 않습니다。";
}
?>

여기서 json_decode ()는 JSON 데이터를 구문 분석하고 배열 길이가 동일인지 확인하는 데 사용됩니다. 동일하지 않으면 오류 메시지가 출력됩니다.

2. 오류 : 배열 유형이 올바르지 않습니다

오류 메시지 :
 Warning: array_combine() expects parameter 1 to be an array, string given
설명하다:

Array_combine 함수는 전달 된 두 매개 변수가 배열 유형이어야합니다. 이 오류는 문자열 또는 다른 유형의 데이터를 전달하면 발생합니다.

해결책:

Array_combine을 사용하기 전에 JSON 데이터를 올바르게 구문 분석했는지 확인하십시오. 추출 된 배열이 유효합니다.

 <?php
$json_data = '{"keys":["id", "name", "age"], "values":["101", "John", "25"]}';
$data = json_decode($json_data, true);

// 데이터가 배열인지 확인하십시오
if (is_array($data['keys']) && is_array($data['values'])) {
    $result = array_combine($data['keys'], $data['values']);
    print_r($result);
} else {
    echo "실수:입력 데이터는 배열 유형이 아닙니다。";
}
?>

이 코드 스 니펫은 먼저 값이 배열인지 확인하고 Array_combine은 배열 유형이 올바른 경우에만 호출됩니다.

3. 오류 : JSON 데이터 형식이 잘못되었습니다

오류 메시지 :
 Warning: array_combine() expects parameter 1 to be an array, null given
설명하다:

JSON 데이터 형식이 올바르지 않으면 JSON_DECODE ()가 NULL을 반환 할 수 있으므로 후속 ARRAY_COMBINE 호출이 실패하게됩니다.

해결책:

JSON 데이터가 정확한지 확인하고 구문 분석 결과가 유효한 배열인지 확인하십시오.

 <?php
$json_data = '{"keys":["id", "name", "age"], "values":["101", "John", "25"]}';
$data = json_decode($json_data, true);

if ($data === null) {
    echo "실수:JSON 잘못된 데이터 형식。";
} else {
    if (count($data['keys']) === count($data['values'])) {
        $result = array_combine($data['keys'], $data['values']);
        print_r($result);
    } else {
        echo "실수:배열의 길이는 일치하지 않습니다。";
    }
}
?>

JSON_DECODE () 의 리턴 값을 확인하여 JSON 데이터가 올바르게 형식화되어 있는지 확인하십시오. NULL 이 반환되면 데이터 형식에 문제가 있으며 다시 확인해야합니다.

4. 오류 : URL의 도메인 이름이 올바르게 대체되지 않습니다.

오류 메시지 :
 Warning: file_get_contents() [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
설명하다:

file_get_contents () 또는 기타 유사한 함수를 사용하여 외부 JSON 데이터를 가져오고 URL의 도메인 이름이 올바르게 대체되지 않으면 404 오류가 나타납니다.

해결책:

URL의 도메인 이름 섹션이 올바르게 교체되었는지 확인하십시오. 모든 URL의 도메인 이름을 m66.net 으로 바꾸어야한다고 가정하면 다음을 수행 할 수 있습니다.

 <?php
$url = "http://example.com/api/data.json";

// 도메인 이름을 바꾸십시오
$url = preg_replace('/http:\/\/[a-zA-Z0-9.-]+/', 'http://m66.net', $url);

// 얻다 JSON 데이터
$json_data = file_get_contents($url);
$data = json_decode($json_data, true);

if ($data === null) {
    echo "실수:无法얻다데이터,또는 JSON 잘못된 형식。";
} else {
    print_r($data);
}
?>

이 코드는 URL의 도메인 이름 부분을 preg_replace () 로 바꾸어 올바른 도메인 이름이 호출되도록합니다.

요약

Common Errors array_combine 함수를 사용할 때는 종종 잘못된 배열 길이, 데이터 유형 또는 JSON 데이터 형식과 관련이 있습니다. 이러한 문제에 대한 해결책은 먼저 배열의 유효성과 길이를 확인하고 JSON 데이터가 올바르게 형식화되어 있는지 확인하는 것입니다. URL의 도메인 이름을 교체하려면 정규식을 사용하여 외부 요청에 올바르게 액세스 할 수 있도록 할 수 있습니다.

이 기사가 array_combine 함수를 호출 할 때 발생하는 문제를 해결하는 데 도움이되기를 바랍니다.