php에서 array_map ()은 배열의 모든 요소를 호출 할 수있는 매우 강력한 기능입니다. 이 기능은 후속 통계 작업을 단순화하기 위해 복잡한 데이터 구조를 전처리 할 때 특히 사용하기에 적합합니다. 이 기사는 Array_Map ()을 사용하여 복잡한 데이터 구조를 효과적으로 처리하여 후속 데이터 통계를보다 쉽게하는 방법을 소개합니다.
Array_Map () 함수를 사용하면 배열의 각 요소에 콜백 함수를 적용하고 새 배열을 반환 할 수 있습니다. 이 기능의 기본 구문은 다음과 같습니다.
array_map(callback $callback, array $array, array ...$arrays): array
$ 콜백 : 배열의 각 요소에 작용하는 콜백 함수.
$ 배열 : 처리 할 배열.
$ 배열 : 선택 사항, 추가 매개 변수로 더 많은 배열을 전달할 수 있으며 콜백 함수는 각 배열의 요소를 차례로 처리합니다.
실제 개발에서 배열에는 중첩 된 다차원 데이터 구조가 포함될 수 있습니다. 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
)
보다 복잡한 경우, 배열은 단순한 필드 이상의 것을 포함 할 수 있습니다. 예를 들어, 여러 주문 정보 배열이있을 수 있으며 각 순서에는 여러 항목이 포함됩니다.
$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 ()을 사용하면 다차원 배열을 쉽게 처리하고 필요한 필드를 추출 및 수정할 수 있습니다.
많은 응용 분야에서 배열에서 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이 포함 된 새 배열을 반환합니다.
Array_Map ()을 사용하면 복잡한 데이터 구조를 매우 편리하게 전제로 처리 할 수 있습니다. 특히 다차원 배열을 처리하고 배열 요소의 배치 수정이 필요할 때. 콜백 기능과 결합하여 다양한 복잡한 데이터 정리, 통계 및 데이터 변환 작업을 구현할 수 있습니다.
PHP에서 Array_Map ()은 개발자가 데이터를 효율적으로 처리하고 후속 작업을 단순화하는 데 도움이되는 매우 강력한 도구입니다. 복잡한 데이터 처리 작업에 직면하는 경우 Array_Map ()은 의심 할 여지없이 가치있는 기술입니다.