현재 위치: > 최신 기사 목록> Array_Column 및 Array_Map으로 여러 열 값을 효율적으로 추출하는 방법

Array_Column 및 Array_Map으로 여러 열 값을 효율적으로 추출하는 방법

M66 2025-04-28

PHP에서 배열 데이터 처리 및 추출은 매우 일반적인 작업입니다. 배열 조작 기능 array_columnarray_map은 특히 2 차원 배열을 처리 할 때 배열에서 여러 열을 추출하고 조작하는 효율적인 방법을 제공합니다. 이 기사는이 두 기능을 사용하여 배열에서 여러 개의 데이터 열을 효율적으로 추출하고 관련 코드 예제를 표시하는 방법을 소개합니다.

1. Array_Column을 사용하여 단일 열 데이터를 추출하십시오

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 을 통해 이름 열의 데이터를 추출합니다.

2. Array_Map을 사용하여 여러 개의 데이터 열을 추출하십시오

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 차원 배열을 생성하는 데 사용됩니다.

3. Array_ColumnArray_Map을 사용하여 여러 데이터 열을 추출합니다.

때로는 여러 열에서 데이터를 추출하고 이러한 데이터를 처리하려고합니다. 이 목표는 array_columnarray_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 루프를 사용하지 않으며 코드 가독성 및 실행 효율성을 향상시킬 수 있습니다.

이 두 기능을 합리적으로 사용하면 배열 데이터 처리의 복잡성을 크게 단순화하고 코드의 실행 효율성을 향상시킬 수 있습니다.