[이론] PHP & JavaScript에서 희소 배열(Sparse Array) 이해 및 해결 방법
·
백엔드/PHP
1. 개요PHP와 JavaScript 모두 배열을 다룰 때 중간 인덱스나 요소가 비어 있는 “희소 배열(Sparse Array)” 구조를 지원합니다.희소 배열은 연속된 인덱스를 가정한 반복 처리나 JSON 직렬화 시 예상치 못한 동작, 성능 저하를 일으킬 수 있습니다.2. PHP에서의 희소 배열2-1. 발생 사례$arr[1000] = '값'; 처럼 비연속 인덱스를 직접 할당할 때array_push($arr, $val) 호출 시 내부적으로 현재 최대 키+1 위치에 삽입될 때unset($arr[$key]) 로 요소 삭제 후 자동 재인덱싱이 이루어지지 않을 때2-1. 해결 방법array_values($arr) 로 값만 추출해 0부터 순차 인덱스 재생성ksort($arr) 후 array_values($arr) ..