현재 위치: > 최신 기사 목록> array_map ()를 사용하여 복잡한 구조 전처리

array_map ()를 사용하여 복잡한 구조 전처리

M66 2025-06-07

php에서 array_map ()은 배열의 모든 요소를 ​​호출 할 수있는 매우 강력한 기능입니다. 이 기능은 후속 통계 작업을 단순화하기 위해 복잡한 데이터 구조를 전처리 할 때 특히 사용하기에 적합합니다. 이 기사는 Array_Map ()을 사용하여 복잡한 데이터 구조를 효과적으로 처리하여 후속 데이터 통계를보다 쉽게하는 방법을 소개합니다.

1. array_map () 함수 소개

Array_Map () 함수를 사용하면 배열의 각 요소에 콜백 함수를 적용하고 새 배열을 반환 할 수 있습니다. 이 기능의 기본 구문은 다음과 같습니다.

 array_map(callback $callback, array $array, array ...$arrays): array
  • $ 콜백 : 배열의 각 요소에 작용하는 콜백 함수.

  • $ 배열 : 처리 할 배열.

  • $ 배열 : 선택 사항, 추가 매개 변수로 더 많은 배열을 전달할 수 있으며 콜백 함수는 각 배열의 요소를 차례로 처리합니다.

2. 복잡한 데이터 구조에 Array_Map () 의 적용

실제 개발에서 배열에는 중첩 된 다차원 데이터 구조가 포함될 수 있습니다. Array_Map () 을 통해이 복잡한 데이터 구조를 전제로 처리하여 후속 통계 작업을 단순화 할 수 있습니다. 예를 살펴 보겠습니다.

여러 사용자 정보가 포함 된 배열이 있고 각 사용자의 구조가 다음과 같습니다.

 $users = [
    ['name' => 'John', 'email' => 'john@example.com', 'age' => 28],
    ['name' => 'Jane', 'email' => 'jane@example.com', 'age' => 34],
    ['name' => 'Tom', 'email' => 'tom@example.com', 'age' => 40],
];

Array_Map () 을 통해 각 사용자의 연령 정보를 추출하고 후속 통계 작업을 용이하게하기 위해 나이에 5 세를 추가하기를 희망합니다. 다음 코드를 사용할 수 있습니다.

 $ages = array_map(function($user) {
    return $user['age'] + 5;
}, $users);

print_r($ages);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => 33
    [1] => 39
    [2] => 45
)

3. 다차원 배열의 깊이 처리

보다 복잡한 경우, 배열은 단순한 필드 이상의 것을 포함 할 수 있습니다. 예를 들어, 여러 주문 정보 배열이있을 수 있으며 각 순서에는 여러 항목이 포함됩니다.

 $orders = [
    ['order_id' => 1, 'products' => [['name' => 'apple', 'price' => 1.5], ['name' => 'banana', 'price' => 2.0]]],
    ['order_id' => 2, 'products' => [['name' => 'carrot', 'price' => 0.9], ['name' => 'date', 'price' => 3.5]]],
];

각 순서로 각 항목의 가격에 대해 10% 할인을 받고 각 항목의 이름과 할인 된 가격을 반환한다고 가정하십시오. Array_Map () 및 중첩 된 콜백 함수를 통해이를 달성 할 수 있습니다.

 $discountedOrders = array_map(function($order) {
    $order['products'] = array_map(function($product) {
        $product['price'] *= 0.9; // 10%할인
        return $product;
    }, $order['products']);
    return $order;
}, $orders);

print_r($discountedOrders);

출력 결과 :

 Array
(
    [0] => Array
        (
            [order_id] => 1
            [products] => Array
                (
                    [0] => Array
                        (
                            [name] => apple
                            [price] => 1.35
                        )
                    [1] => Array
                        (
                            [name] => banana
                            [price] => 1.8
                        )
                )
        )
    [1] => Array
        (
            [order_id] => 2
            [products] => Array
                (
                    [0] => Array
                        (
                            [name] => carrot
                            [price] => 0.81
                        )
                    [1] => Array
                        (
                            [name] => date
                            [price] => 3.15
                        )
                )
        )
)

이 예에서는 먼저 순서대로 각 항목에 할인을 적용하고 할인이 포함 된 다양한 항목을 반환합니다. Nested Array_map ()을 사용하면 다차원 배열을 쉽게 처리하고 필요한 필드를 추출 및 수정할 수 있습니다.

4. URL 교체 및 데이터 청소

많은 응용 분야에서 배열에서 URL을 균일하게 처리해야 할 수도 있습니다. 예를 들어 배열의 모든 URL에서 도메인 이름을 M66.net 으로 바꾸려고합니다. Array_Map ()을 사용하여 배열의 각 URL을 처리 할 수 ​​있으며 코드 예제는 다음과 같습니다.

 $urls = [
    'https://www.example.com/page1',
    'https://www.example.com/page2',
    'https://www.example.com/page3',
];

$updatedUrls = array_map(function($url) {
    return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);

print_r($updatedUrls);

출력 결과 :

 Array
(
    [0] => https://m66.net/page1
    [1] => https://m66.net/page2
    [2] => https://m66.net/page3
)

이 예에서는 preg_replace ()를 사용하여 URL의 도메인 이름 부분을 대체합니다. Array_Map ()을 사용하면 각 URL을 처리하고 교체 된 URL이 포함 된 새 배열을 반환합니다.

5. 요약

Array_Map ()을 사용하면 복잡한 데이터 구조를 매우 편리하게 전제로 처리 할 수 ​​있습니다. 특히 다차원 배열을 처리하고 배열 요소의 배치 수정이 필요할 때. 콜백 기능과 결합하여 다양한 복잡한 데이터 정리, 통계 및 데이터 변환 작업을 구현할 수 있습니다.

PHP에서 Array_Map ()은 개발자가 데이터를 효율적으로 처리하고 후속 작업을 단순화하는 데 도움이되는 매우 강력한 도구입니다. 복잡한 데이터 처리 작업에 직면하는 경우 Array_Map ()은 의심 할 여지없이 가치있는 기술입니다.