본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP array_unshift — 배열 앞에 원소 추가 완전 정리

by 왕진 2026. 6. 15.
반응형

 

 

Web Development · PHP array_unshift

PHP array_unshift —
배열 앞에 원소 추가

["사과","귤","감"] + 앞에 ("파파야","키위") → ["파파야","키위","사과","귤","감"]
시작 오늘 분석할 코드
<?php $data = array("사과", "귤", "감"); array_unshift($data, "파파야", "키위"); // 배열 맨 앞에 데이터 넣기 print "<PRE>"; print_r($data); print "</PRE>"; ?>
Array ( [0] => 파파야 [1] => 키위 [2] => 사과 [3] => 귤 [4] => 감 )

매개변수로 넘긴 순서 그대로 맨 앞에 차례로 들어간다. 기존 원소들은 뒤로 밀려 인덱스가 새로 매겨진다.

용어 용어 정리
array_unshift()배열 앞에 1개 이상 원소 추가
unshiftshift의 반대 — 앞에 끼워넣기
in-place원본 직접 수정
반환값새 배열 길이
인덱스 재배열기존 원소가 뒤로 밀림 → 새 0,1,2,…
반대array_shift — 앞에서 빼기
성능앞 삽입은 큰 배열에서 비쌈
스프레드unshift($a, ...$other) 가능

1 push와 unshift는 한 쌍
array_push($a, ...) → 끝에 추가 array_unshift($a, ...) → 앞에 추가 array_pop($a) → 끝에서 빼기 array_shift($a) → 앞에서 빼기

2 인덱스 재배열 — 함정
// 추가 전 (숫자 키 0,1,2) [0=>사과, 1=>귤, 2=>감] // unshift 후 (숫자 키 모두 새로!) [0=>파파야, 1=>키위, 2=>사과, 3=>귤, 4=>감] // 사과는 0→2, 귤은 1→3 으로 이동
※ 연관 배열에 unshift 시 문자열 키는 유지되지만 숫자 키는 모두 0부터 다시 매겨진다. 의도와 다를 수 있으니 주의.

3 활용 — 배열 결합
$old = ["사과", "귤"]; $new = ["파파야", "키위"]; array_unshift($old, ...$new); // → ["파파야", "키위", "사과", "귤"]

 

반응형

 

4 자주 하는 실수
실수 증상 해결
$a = array_unshift(...) $a가 길이(숫자)로 덮임 반환값 받지 말기
큰 배열에 반복 unshift 매우 느림 — 매번 O(n) 한 번에 여러 개 또는 array_merge
여러 개를 배열로 넘기면 1개로 중첩 배열 됨 스프레드 ... 사용

핵심 한 줄 요약

array_unshift()배열 앞에 원소 1개 이상 추가
in-place원본 직접 수정
반환값새 길이 (보통 안 받음)
인덱스 재배열숫자 키 모두 0부터 다시
반대array_shift — 앞에서 빼기
array_push와 push/unshift = 끝/앞 추가
성능앞 삽입은 큰 배열에서 비효율
반응형

댓글