현재 위치: > 최신 기사 목록> JSON 디코딩 어레이를 처리 할 때 Array_Slice를 사용하는 방법

JSON 디코딩 어레이를 처리 할 때 Array_Slice를 사용하는 방법

gitbox 2025-05-29

1. Array_Slice 란 무엇입니까?

Array_Slice는 배열에서 일부 요소를 가로 채는 것과 유사한 배열에서 서브 어레이를 추출하는 데 사용되는 PHP의 내장 배열 기능입니다. 함수 서명은 다음과 같습니다.

 array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)
  • $ 배열 : 배열이 가로 채 웁니다.

  • $ 오프셋 : 가로 채기를 시작하는 위치는 배열 끝에서 시작하는 것을 나타내는 음수를 지원합니다.

  • $ 길이 : 가로 채기 길이는 생략되면 배열 끝에 가로 채 웁니다.

  • $ preserve_keys : 원래 배열의 키 이름을 유지할지 여부는 기본값이 False , 즉 인덱스를 재설정합니다.


2. JSON_DECODEARRAY_SLICE를 결합하여 JSON 어레이를 처리합니다

많은 양의 JSON 데이터를 반환하는 인터페이스가 있다고 가정하고 페이지 또는 청킹 처리에 대한 데이터 중 일부 만 가져 가려고합니다. 샘플 코드는 다음과 같습니다.

 <?php
$jsonData = file_get_contents('https://gitbox.net/api/data.json');
$arrayData = json_decode($jsonData, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON 디코딩이 실패했습니다: ' . json_last_error_msg());
}

// 우리가 가져 가고 싶다고 가정 해 봅시다 11 도착하다 20 데이터(즉, 인덱스에서10시작,선택하다10조각)
$partialData = array_slice($arrayData, 10, 10);

// 출력 결과,보기 쉽습니다
echo '<pre>';
print_r($partialData);
echo '</pre>';
?>

여기서는 먼저 file_get_contents를 사용하여 https://gitbox.net/api/data.json 에서 JSON 문자열을 가져온 다음 배열로 디코딩 한 다음 Array_Slice를 사용하여 지정된 간격으로 데이터를 가로 채립니다.


3. 시나리오를 사용하십시오

  • Pagination Display : 배경 인터페이스는 많은 양의 데이터를 반환하며 현재 페이지에 해당하는 데이터 만 Array_Slice를 통해 전송되거나 처리됩니다.

  • 리소스 저장 : 한 번에 너무 많은 데이터를 처리하지 않고 메모리 사용량을 줄입니다.

  • 로컬 처리 : 예를 들어 로그 분석 및 데이터 내보내기시 부분 배열 만 처리됩니다.


4. 주목할만한 것들

  • json_decode를 사용하면 두 번째 매개 변수가 true 로 설정되어 객체 대신 배열이 얻어 지도록 array_slice를 호출하는 것이 편리합니다.

  • 배열 키 이름이 중요하다면 네 번째 매개 변수 $ preserve_keys를 true 로 설정할 수 있습니다.

  • 프로그램 충돌을 일으키는 오류를 피하기 위해 처리하기 전에 JSON이 성공적으로 디코딩되었는지 확인하십시오.


5. 포괄적 인 예

 <?php
$jsonUrl = 'https://gitbox.net/api/data.json';

$jsonStr = file_get_contents($jsonUrl);
$dataArray = json_decode($jsonStr, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    echo "디코딩 오류: " . json_last_error_msg();
    exit;
}

$page = 2;
$pageSize = 10;
$offset = ($page - 1) * $pageSize;

$pageData = array_slice($dataArray, $offset, $pageSize, true);

echo '<h2>1. ' . $page . ' 페이지 데이터:</h2>';
echo '<pre>' . print_r($pageData, true) . '</pre>';
?>

이 예제는 페이징 기능을 시뮬레이션하고 JSON 배열 데이터의 일부를 유연하게 처리합니다.