[PHP] 배열 요소의 순서를 반대로 정렬해보자 feat. ARRAY_REVERSE
PHP 배열을 이래저래 다루다 보면 자주는 아니지만 꼭 한번 씩은 쓰게 되는 array_reverse
함수에 대해 정리해봅니다.
배열
아래와 같은 배열이 있다고 해봅시다.
$arr = array( 'a', 'b', 'c' );
원래 이 배열의 실제 모양은 아래와 같습니다.
$arr = array( [0] => 'a', [1] => 'b', [2] => 'c' );
array_reverse
이 배열의 순서를 뒤집어 a, b, c
순서가 아니라 c, b, a
로 바꾸기 위해 array_reverse
함수를 이용하는 것입니다.
기본적으로 array_reverse
함수는 두 개의 인수를 가집니다.
array_reverse(array$array
, bool$preserve_keys
= false): array
- 첫 번째 인수는 요소의 순서를 뒤바꿀 대상이 되는 배열이며(필수)
- 두 번째는 키 값의 순서는 유지할 것인가에 대한 인수로(선택) 기본 값은
false
입니다.
예제1
실제로 array_reverse
를 이용해 배열 요소의 순서를 뒤집어 봅시다.
$arr = array( 'a', 'b', 'c' ); $arr = array_reverse( $arr );
이렇게 되면 $arr
은 아래와 같이 바뀝니다.
$arr = array( 'c', 'b', 'a' ); $arr = array( [0] => 'c', [1] => 'b', [2] => 'a' );
예상한 딱 그 모양 그대로 나옵니다. 여기에 만약 $preserve_keys
를 true
로 투입한다면?
$arr = array( [2] => 'c', [1] => 'b', [0] => 'a' );
이런 결과를 볼 수 있을 것입니다.
예제2
사실 제가 진짜 궁금했던 것은 아래입니다.
$arr = array( [a] => array( 1, 2, 3 ), [b] => array( 4, 5, 6 ), );
이런 배열에 array_reverse
를 적용하면 과연 하위 배열의 순서도 바뀔까? 였는데, 실제로 해보니 하위 배열의 요소들은 원래의 순서를 유지하네요.
즉 위 배열에 array_reverse
를 적용하면 아래와 같은 결과를 볼 수 있습니다.
$arr = array( [b] => array( 4, 5, 6 ), [a] => array( 1, 2, 3 ), );
다행히도 상상한 그대로의 결과가 나왔습니다.
끝.
참고자료
- array_reverse, php.net
댓글 남기기