array_column() 함수는 PHP에서 사용되는 다차원 배열에서 특정 열(column)의 값을 추출하여 새로운 배열로 반환하는 함수입니다. 이 함수는 배열에서 특정 열(column)에 해당하는 값을 추출하거나 객체의 속성을 추출하는 데 사용됩니다.
다음은 array_column() 함수의 구문입니다.
array_column(array $input, mixed $column_key [, mixed $index_key = null ]) : array
- $input: 값을 추출할 다차원 배열입니다.
- $column_key: 추출할 열(column)의 키(key) 또는 인덱스(index)입니다. 정수, 문자열, 또는 null 값을 사용할 수 있습니다.
- $index_key (옵션): 새로운 배열의 키(key)로 사용할 열(column)의 키(key) 또는 인덱스(index)입니다. 이 매개변수를 생략하면 숫자형 키(key)가 할당됩니다.
다음은 array_column() 함수를 사용하여 배열에서 열(column)의 값을 추출하는 예시입니다.
$students = array(
array('name' => 'John', 'age' => 20, 'grade' => 'A'),
array('name' => 'Jane', 'age' => 22, 'grade' => 'B'),
array('name' => 'Bob', 'age' => 21, 'grade' => 'A'),
);
$names = array_column($students, 'name');
print_r($names);
// 출력
Array
(
[0] => John
[1] => Jane
[2] => Bob
)
위의 예시에서는 $students 다차원 배열에서 array_column() 함수를 사용하여 name 열(column)의 값을 추출합니다. 추출된 값들은 $names 배열에 저장되어 출력됩니다.
array_column() 함수를 사용하여 특정 열(column)의 값을 추출할 때, 다차원 배열의 각 요소는 연관 배열 또는 객체여야 합니다. 만약 다차원 배열의 요소가 연관 배열이 아니거나 객체가 아닌 경우, Notice 오류가 발생할 수 있습니다.
array_column() 함수는 선택적으로 새로운 배열의 키(key)를 설정할 수도 있습니다. $index_key 매개변수를 사용하여 특정 열(column)의 키(key)를 새로운 배열의 키(key)로 할당할 수 있습니다.
$students = array(
array('name' => 'John', 'age' => 20, 'grade' => 'A'),
array('name' => 'Jane', 'age' => 22, 'grade' => 'B'),
array('name' => 'Bob', 'age' => 21, 'grade' => 'A'),
);
$grades = array_column($students, 'grade', 'name');
print_r($grades);
// 출력
Array
(
[John] => A
[Jane] => B
[Bob] => A
)
위의 예시에서는 $students 다차원 배열에서 grade 열(column)의 값을 추출하고, name 열(column)을 새로운 배열의 키(key)로 사용합니다. 이렇게 하면 학생 이름을 키(key)로, 학점을 값(value)으로 가지는 $grades 배열이 생성됩니다.
따라서, array_column() 함수를 사용하여 배열에서 열(column)의 값을 추출할 수 있습니다. 새로운 배열에는 해당 열(column)에 대한 값들이 저장되며, 필요에 따라 새로운 배열의 키(key)도 설정할 수 있습니다.
다음은 array_column() 함수를 사용한 몇 가지 예입니다.
- 데이터 추출: 다차원 배열에서 특정 열의 값만 추출해야 할 때 array_column() 함수를 사용할 수 있습니다. 예를 들어, 데이터베이스 쿼리 결과에서 특정 필드의 값을 가져오거나 사용자 목록에서 특정 속성의 값을 추출할 수 있습니다.
$users = [
['id' => 1, 'name' => 'John', 'email' => 'john@example.com'],
['id' => 2, 'name' => 'Mary', 'email' => 'mary@example.com'],
['id' => 3, 'name' => 'Peter', 'email' => 'peter@example.com']
];
// 사용자 목록에서 모든 이메일 주소만 추출하여 새로운 배열 생성
$emails = array_column($users, 'email');
// $emails = ['john@example.com', 'mary@example.com', 'peter@example.com']
- 키-값 매핑: 다차원 배열에서 특정 열을 키로, 다른 열을 값으로 사용하여 연관 배열을 생성할 때 array_column() 함수를 사용할 수 있습니다. 예를 들어, 데이터베이스에서 사용자 ID와 이름을 가져와 ID를 키로, 이름을 값으로 사용하여 사용자 연관 배열을 만들 수 있습니다.
$users = [
['id' => 1, 'name' => 'John'],
['id' => 2, 'name' => 'Mary'],
['id' => 3, 'name' => 'Peter']
];
// 사용자 목록에서 ID를 키로, 이름을 값으로 하는 연관 배열 생성
$userMap = array_column($users, 'name', 'id');
// $userMap = [1 => 'John', 2 => 'Mary', 3 => 'Peter']
- 객체 변환: 객체 배열에서 특정 속성의 값을 추출하거나 변경해야 할 때 array_column() 함수를 사용할 수 있습니다. 예를 들어, 사용자 객체 배열에서 각 사용자의 이름만 가져오는 것이나 사용자 객체의 속성을 변경할 때 유용합니다.
class User {
public $id;
public $name;
public $email;
public function __construct($id, $name, $email) {
$this->id = $id;
$this->name = $name;
$this->email = $email;
}
}
$users = [
new User(1, 'John', 'john@example.com'),
new User(2, 'Mary', 'mary@example.com'),
new User(3, 'Peter', 'peter@example.com')
];
// 사용자 객체 배열에서 모든 이름만 추출하여 새로운 배열 생성
$names = array_column($users, 'name');
// $names = ['John', 'Mary', 'Peter']
이러한 예는 array_column() 함수의 일부 활용 방법을 보여줍니다. 실제로 array_column() 함수는 다차원 배열에서 특정 열의 값을 추출하거나 변환하는 데 유용하며, 데이터 처리 및 변환 작업에 활용될 수 있습니다.
'PROGRAMMING > PHP' 카테고리의 다른 글
PHP array_chunk() 배열 나누기 (0) | 2023.07.10 |
---|---|
PHP array_multisort() 배열 정렬 다차원 배열 정렬 (0) | 2023.07.10 |
PHP array_rand() 배열 랜덤 추출 (0) | 2023.07.07 |
PHP array_replace() 배열 결합하기 중복제거 (0) | 2023.07.07 |
PHP array_diff() 배열 비교 중복값 제거 (0) | 2023.07.07 |
댓글