PHP에서 배열 데이터 처리 및 추출은 매우 일반적인 작업입니다. 배열 조작 기능 array_column 및 array_map은 특히 2 차원 배열을 처리 할 때 배열에서 여러 열을 추출하고 조작하는 효율적인 방법을 제공합니다. 이 기사는이 두 기능을 사용하여 배열에서 여러 개의 데이터 열을 효율적으로 추출하고 관련 코드 예제를 표시하는 방법을 소개합니다.
Array_Column은 2 차원 배열에서 지정된 열에서 데이터를 추출하는 데 사용되는 기능입니다. 배열의 각 요소에서 지정된 키에 해당하는 값 (일반적으로 연관 배열)을 추출하고 새 배열을 반환합니다.
문법:
array_column(array $array, $column_key, $index_key = null)
$ 배열 : 입력 다차원 배열.
$ column_key : 추출 할 열을 지정합니다.
$ index_key : 키 값을 새 배열의 인덱스로 지정하는 옵션 매개 변수입니다.
예:
다양한 사용자 정보가 있다고 가정하고 각 사용자에게 ID , 이름 및 이메일이 포함되어 있다고 가정합니다.
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];
// 모두 추출하십시오 "name" 목록
$names = array_column($users, 'name');
print_r($names);
산출:
Array
(
[0] => Alice
[1] => Bob
[2] => Charlie
)
Array_Column 을 통해 이름 열의 데이터를 추출합니다.
Array_Map을 사용하여 새로운 배열을 생성하기 위해 배열의 각 요소에 콜백 함수를 적용 할 수 있습니다. 이 기능을 사용하여 여러 열에서 데이터를 추출 할 수 있습니다.
문법:
array_map(callable $callback, array $array)
$ 콜백 : 배열에서 각 요소를 처리하는 콜백 함수.
$ 배열 : 입력 배열.
예:
이제 이름 열뿐만 아니라 이메일 열을 추출하고 싶다고 가정 해 봅시다. 콜백 함수와 함께 array_map을 사용하여이를 수행 할 수 있습니다.
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];
// 발췌 "name" 그리고 "email" 两목록
$namesAndEmails = array_map(function($user) {
return [$user['name'], $user['email']];
}, $users);
print_r($namesAndEmails);
산출:
Array
(
[0] => Array
(
[0] => Alice
[1] => alice@m66.net
)
[1] => Array
(
[0] => Bob
[1] => bob@m66.net
)
[2] => Array
(
[0] => Charlie
[1] => charlie@m66.net
)
)
이 예에서 Array_Map은 각 사용자의 배열에서 두 필드 이름 과 이메일을 추출하여 새로운 2 차원 배열을 생성하는 데 사용됩니다.
때로는 여러 열에서 데이터를 추출하고 이러한 데이터를 처리하려고합니다. 이 목표는 array_column 과 array_map을 결합하여 효율적으로 달성 할 수 있습니다. 예를 들어, 모든 사용자의 이름 과 이메일 열을 추출하고 이메일에서 M66.net 도메인 이름을 example.com 으로 바꿀 수 있습니다.
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];
// 사용 array_map 발췌 name 그리고 email,그리고 수정 email
$namesAndEmails = array_map(function($user) {
$user['email'] = str_replace('@m66.net', '@example.com', $user['email']);
return [$user['name'], $user['email']];
}, $users);
print_r($namesAndEmails);
산출:
Array
(
[0] => Array
(
[0] => Alice
[1] => alice@example.com
)
[1] => Array
(
[0] => Bob
[1] => bob@example.com
)
[2] => Array
(
[0] => Charlie
[1] => charlie@example.com
)
)
이 예에서는 사용자의 이름 과 이메일을 추출 할뿐만 아니라 str_replace를 통해 M66.net 에서 Example.com 으로 이메일 도메인 이름을 수정합니다.
Array_Column 은 다차원 배열에서 단일 열 데이터를 추출하는 매우 효율적인 도구이며 간단한 열 추출에 적합합니다.
Array_Map은 각 요소의 복잡한 처리를 수행하는 데 사용할 수있는보다 강력한 기능을 제공하여 여러 열에서 데이터를 추출합니다.
이 두 기능을 사용하면 다차원 배열에서 다중 열 데이터를 효과적으로 추출하고 처리 할 수 있으며, 중첩 된 Foreach 루프를 사용하지 않으며 코드 가독성 및 실행 효율성을 향상시킬 수 있습니다.
이 두 기능을 합리적으로 사용하면 배열 데이터 처리의 복잡성을 크게 단순화하고 코드의 실행 효율성을 향상시킬 수 있습니다.