정의 및 사용 방법
- PHP 버전
- 4+
array_values()
함수는
주어진 배열에서 모든 값(value)을 추출하여 새로운 인덱스 배열을 반환합니다.
반환된 배열은 0
부터 시작하는 연속된 숫자 인덱스를 가지며, 원래 배열의 키(key)는 무시됩니다.
이 함수는 주로 연관 배열에서 사용하며,
(1). 원래 배열의 키를 무시하고 값만 사용해야 하는 경우나,
(2). 배열의 순서를 유지하면서 배열의 모든 값을 반환해야 하는 경우에 일반적으로 사용됩니다.
특징
- 배열의 모든 값을 가져옵니다.
- 원래 배열의 키(key)는 완전히 버려집니다.
- 추출된 값들로 구성된 새로운 배열을 만듭니다.
- 새로운 배열은 연속된
0
,1
,2
... 순서로 자동으로 재정렬된 숫자 인덱스를 가집니다. - 원본 배열은 그대로 유지됩니다.
기본 예제
/** 연관 배열 **/
$assoc = ['name' => 'Alice', 'age' => 25];
// 전체 값 목록 가져오기
$values = array_values($assoc);
var_dump($values);
// 출력: array(2) { [0]=> string(5) "Alice" [1]=> int(25) }
/** 인덱스 배열 **/
$indexed = ['apple', 'banana', 'cherry'];
// 인덱스 배열에 array_values()를 사용해도 결과는 동일합니다.
// 이미 0부터 시작하는 연속적인 인덱스를 가지고 있기 때문입니다.
$values_indexed = array_values($indexed);
var_dump($values_indexed);
// 출력: array(3) { [0]=> string(5) "apple" [1]=> string(6) "banana" [2]=> string(6) "cherry" }
// 주의: array_values()는 원본 배열을 변경하지 않습니다.
위 예제에서 보듯이, array_values()
함수는 주로 연관 배열의 키를 버리고 값만 가져올 때 사용하며, 이미 0
부터 시작하는 연속된 숫자 인덱스를 가진 배열에서는 거의 사용되지 않습니다.
구문
array_values(array $array): array
매개변수
$array |
값(values)를 추출할 배열입니다. |
---|
반환 값
배열의 모든 값(values)을 배열로 추출하여 반환하고,
반환된 배열을 숫자로 인덱싱합니다.
array_values()
함수의 반환 값 사례
/** 연관 배열 **/
$array_1 = [
0 => 100,
'color' => 'green'
];
print_r(array_values($array_1));
// 출력: Array ( [0] => 100 [1] => green )
/** 다차원 배열 **/
$array_2 = [
'color' => ['red', 'green', 'blue'],
'size' => ['small', 'medium', 'large']
];
print_r(array_values($array_2));
/*
출력:
Array
(
[0] => Array ( [0] => red [1] => green [2] => blue )
[1] => Array ( [0] => small [1] => medium [2] => large )
)
*/
/** 비어있는 배열 **/
$array_3 = [];
print_r(array_values($array_3));
// 출력: Array ( )
유용한 예제
다음과 같은 경우 유용하게 사용할 수 있습니다.
- 배열의 키를 무시하고 값만 사용해야 하는 경우
- 배열의 순서를 유지하면서 배열의 모든 값을 반환해야 하는 경우
원래 배열의 키 무시하고 값만 사용하기
가상 상황: 온라인 쇼핑몰에서 주문 정보를 처리하는 PHP 스크립트를 작성해야 합니다. 각 주문은 연관 배열로 저장되며 다음과 같은 형식을 가집니다.
// 주문 정보
$order1 = [
'order_id' => 101,
'customer_name' => '홍길동',
'total_amount' => 5000
];
$order2 = [
'order_id' => 102,
'customer_name' => "김철수",
'total_amount' => 7500
];
// 더 많은 주문 정보...
이 주문 정보를 처리할 때 array_values()
함수를 사용해보겠습니다. 아래는 각 주문 정보를 순차 배열로 변환하여 총 주문 금액을 계산하는 예제 코드입니다.
// 주문 정보
$order1 = [
'order_id' => 101,
'customer_name' => '홍길동',
'total_amount' => 5000
];
$order2 = [
'order_id' => 102,
'customer_name' => "김철수",
'total_amount' => 7500
];
// 주문 정보를 배열에 저장
$orders = array($order1, $order2);
// 주문 정보의 총 금액을 계산
$totalAmount = 0;
foreach ($orders as $order) {
// array_values() 함수를 사용하여 값만 추출
$orderValues = array_values($order);
// 순서대로 주문 금액이 위치한 인덱스 사용
$totalAmount += $orderValues[2];
}
// 총 주문 금액 출력
echo '총 주문 금액: ' . number_format($totalAmount) . '원'; // 출력: '총 주문 금액: 12,500원'
이 코드에서 array_values()
함수를 사용하여 주문 정보에서 값을 추출하고, 주문 금액은 배열에서 정해진 위치 (인덱스 2)를 사용하여 추출하고 누적합니다. 이는 주문 정보를 처리할 때 원래 배열의 키를 무시하고 값을 사용하는 예시입니다.
이 코드는 PHP를 사용하여 가상의 주문 정보를 처리하고 주문 정보에서 총 주문 금액을 계산하는 간단한 프로그램입니다. 코드는 다음 단계로 나뉩니다.
- 주문 정보 정의: 주문 정보는 주문 번호, 고객 이름 및 주문 총 금액을 포함하는 연관 배열로 정의됩니다.
- 주문 정보 배열 생성: 모든 주문 정보는 배열로 저장되며, 이 배열은
$orders
라는 이름으로 정의됩니다. - 총 주문 금액 계산:
foreach()
반복문을 사용하여 주문 정보 배열을 반복하고,array_values()
함수를 사용하여 각 주문의 값을 추출합니다. 그런 다음 주문 총 금액을 합산하여 총 주문 금액을 계산합니다. - 결과 출력: 계산된 총 주문 금액은 화면에 출력되며, 숫자를
number_format()
함수를 사용하여 천 단위로 숫자 형식으로 표시합니다.
배열의 순서를 유지하면서 배열의 모든 값을 반환해야 하는 경우
가상 상황: 회원 정보를 저장하는 연관 배열이 있고, 배열의 순서를 유지하면서 회원 이름을 출력하는 예제 코드를 array_values()
함수를 사용하여 제공하겠습니다.
// 회원 정보를 저장하는 연관 배열 생성
$members = [
101 => '홍길동',
102 => "김철수",
103 => "이영희"
];
// 배열의 순서를 유지하면서 회원 이름을 출력
$memberNames = array_values($members);
foreach ($memberNames as $name) {
echo '회원 이름: ' . $name . '<br>';
}
/*
출력:
회원 이름: 홍길동
회원 이름: 김철수
회원 이름: 이영희
*/
위 두 예제는 array_values()
함수를 사용하는 예제를 보여주기 위한 가상의 상황입니다. array_values()
함수를 사용할지 여부는 구체적인 상황에 따라 결정해야 합니다.
같이 보기
- PHP foreach() 반복문 사용법 및 활용 예제
- PHP 배열 키가 있는지 확인하는 array_key_exists() 함수
- PHP array_map() 함수 – 개념 정리 및 사용 예제
- PHP array_filter() 함수 – 개념 정리 및 사용 예제
- PHP array_search() 함수 – 개념 정리 및 사용 예제
- PHP 배열 값이 있는지 확인하는 in_array() 함수
- PHP array_keys() 함수 – 배열 키 목록 가져오기
- PHP array_slice() 함수 - 개념 정리 및 사용 예제
- PHP array_diff() 함수 - 다른 배열에 없는 값 찾기
- PHP array_diff_assoc() 함수 - 키를 기준으로 다른 배열에 없는 값 찾기
- PHP array_intersect() 함수 - 다른 배열과의 공통 값 찾기
- PHP array_intersect_assoc() 함수 - 키와 값을 기준으로 다른 배열과의 공통 요소 찾기