반응형
Web Development · PHP array_reverse
PHP array_reverse —
배열 원소 순서를 거꾸로
[A,B,C,D,E] → [E,D,C,B,A]
시작 오늘 분석할 코드
<?php $data = array("A", "B", "C", "D", "E"); $result = array_reverse($data); // 배열 순서를 뒤집은 새 배열 반환 print "<PRE>"; print_r($result); print "</PRE>"; ?>
Array ( [0] => E [1] => D [2] => C [3] => B [4] => A )
마지막 원소가 0번 자리, 처음 원소가 마지막 자리로 — 거울처럼 뒤집힌다. 정렬과 다르다 (값을 비교하지 않음).
용어 용어 정리
array_reverse()배열을 거꾸로 뒤집어 새 배열 반환
정렬과 다름값 비교 없음 — 단순 자리 뒤집기
반환값새 배열 (원본은 그대로)
두 번째 매개변수true면 키 보존
vs rsortrsort는 값 기준 정렬, reverse는 자리 뒤집기
불변원본 $data는 변하지 않음
활용최신순 → 오래된순, 이미지 갤러리
시간 복잡도O(n) — 한 번만 훑음
1 reverse vs rsort — 헷갈리지 말기
$a = [3, 1, 2]; array_reverse($a); // [2, 1, 3] ← 자리만 거꾸로 rsort($a); // [3, 2, 1] ← 값 기준 내림차순
이름이 비슷하지만 동작은 완전 다르다. reverse는 비교를 안 한다.
2 두 번째 매개변수 — 키 보존
$a = ["a"=>1, "b"=>2, "c"=>3]; array_reverse($a); // ["c"=>3, "b"=>2, "a"=>1] 문자열 키 자동 보존 array_reverse($a, true); // ["c"=>3, "b"=>2, "a"=>1] 숫자 키도 보존 // 숫자 인덱스 배열에 차이 $b = [10, 20, 30]; array_reverse($b); // [0=>30, 1=>20, 2=>10] ← 새 인덱스 array_reverse($b, true); // [2=>30, 1=>20, 0=>10] ← 원래 키 유지
3 활용 — 최신순 출력
$posts = [...DB에서 ID 순서대로 가져온 글들]; $latest = array_reverse($posts); // 최신 글이 위로 (DB가 ASC면)
물론 더 효율적인 방법은 SQL의 ORDER BY id DESC. PHP 측 reverse는 비용이 든다.
반응형
4 자주 하는 실수
| 실수 | 해결 |
|---|---|
array_reverse($a); 그대로 (반환값 안 받음) |
변수에 받기 — 원본은 안 바뀜 |
| 숫자 키 유지 기대 | 두 번째 매개변수 true |
| 문자열을 reverse하려 함 | strrev($s) 사용 |
핵심 한 줄 요약
array_reverse()배열 자리를 거울처럼 뒤집은 새 배열
정렬과 다름값 비교 없이 자리만 뒤집기
반환값새 배열 — 원본 보존
키 보존 옵션두 번째 매개변수 true
vs rsortrsort는 값 기준 정렬
활용최신순 출력, 갤러리 역순
문자열은strrev() 사용
반응형
'php' 카테고리의 다른 글
| PHP substr — 문자열 일부 자르기 완전 정리 (0) | 2026.06.15 |
|---|---|
| PHP list() 재확인 — 배열을 변수로 분해 완전 정리 (0) | 2026.06.15 |
| PHP array_merge — 두 배열 병합 + 중복 키 덮어쓰기 완전 정리 (0) | 2026.06.15 |
| PHP array_unshift — 배열 앞에 원소 추가 완전 정리 (0) | 2026.06.15 |
| PHP array_shift — 배열 앞에서 원소 제거 + 반환 완전 정리 (0) | 2026.06.15 |
왕진 블로그

댓글