반응형
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 = 끝/앞 추가
성능앞 삽입은 큰 배열에서 비효율
반응형
'php' 카테고리의 다른 글
| PHP array_reverse — 배열 순서 뒤집기 완전 정리 (0) | 2026.06.15 |
|---|---|
| PHP array_merge — 두 배열 병합 + 중복 키 덮어쓰기 완전 정리 (0) | 2026.06.15 |
| PHP array_shift — 배열 앞에서 원소 제거 + 반환 완전 정리 (0) | 2026.06.15 |
| PHP array_pop — 배열 끝에서 원소 제거 + 반환 완전 정리 (0) | 2026.06.15 |
| PHP array_push — 배열 뒤로 원소 추가 완전 정리 (0) | 2026.06.14 |
왕진 블로그

댓글