PHP에서 Array_Filter 및 Array_Map 은 매우 일반적으로 사용되는 강력한 배열 처리 기능입니다. 혼자 사용하면 자신의 용도를 가지고 있지만 결합하면 코드의 단순성과 효율성을 크게 향상시킬 수 있습니다. 이 기사는이 두 기능의 사용법을 자세히 소개하고 조합에 대한 실용적인 팁과 모범 사례를 공유합니다.
Array_Filter
이 기능은 배열 요소를 필터링하는 데 사용됩니다. 콜백 함수는 각 요소가 조건을 충족하는지 여부를 결정하고 조건을 충족하는 모든 요소로 구성된 새 배열을 반환합니다.
$filtered = array_filter($array, function($item) {
return $item > 10; // 필터는보다 큽니다10강요
});
Array_map
이 기능은 배열의 각 요소에서 동일한 콜백 작동을 수행하여 처리 된 새 배열을 반환하는 데 사용됩니다.
$mapped = array_map(function($item) {
return $item * 2; // 각 요소에 곱하십시오2
}, $array);
필터링 후 맵 : 먼저 Array_Filter를 사용하여 조건을 충족하는 요소를 필터링 한 다음 Array_Map을 사용하여 이러한 요소를 균일하게 처리하십시오.
매핑 후 필터 : 먼저 Array_Map을 사용하여 배열 요소 형식을 변환 한 다음 Array_Filter를 사용하여 요구 사항을 충족하는 결과를 필터링하십시오.
일회성 체인 작동 : 간결하고 직관적 인 체인 코드를 작성하여 긴 루프를 쓰는 것을 피하십시오.
<?php
$numbers = [1, 5, 12, 18, 7, 25];
// 더 큰 것을 필터링하십시오10숫자
$filtered = array_filter($numbers, function($num) {
return $num > 10;
});
// 再对过滤后숫자做平方操作
$squared = array_map(function($num) {
return $num * $num;
}, $filtered);
print_r($squared);
?>
산출:
Array
(
[2] => 144
[3] => 324
[5] => 625
)
이 예에서 먼저 Array_Filter를 사용하여 Array_Map이 쓸모없는 작업을 수행하지 않도록 조건을 충족하지 않는 요소를 제거하십시오.
PHP 7.4+는 화살표 기능을 지원하며 체인 호출과 함께 더 간결합니다.
<?php
$numbers = [1, 5, 12, 18, 7, 25];
$result = array_map(
fn($num) => $num * $num,
array_filter($numbers, fn($num) => $num > 10)
);
print_r($result);
?>
<?php
$urls = [
'http://example.com',
'ftp://fileserver.com',
'https://secure.com',
];
// 먼저 소문자 프로토콜로 변환하십시오
$lowercased = array_map(fn($url) => strtolower($url), $urls);
// 다시 필터링하십시오http계약의 시작URL
$httpUrls = array_filter($lowercased, fn($url) => str_starts_with($url, 'http'));
print_r($httpUrls);
?>
array_filter array_filter_use_key 의 두 번째 매개 변수는 키 이름에 따라 필터링 한 다음 array_map 과 함께 값을 처리 할 수 있습니다.
<?php
$data = [
'name' => 'Alice',
'age' => 25,
'email' => '[email protected]',
'score' => 92,
];
// 필터는 키 이름 만 문자열로 유지하고 길이는3강요
$filtered = array_filter($data, fn($key) => strlen($key) > 3, ARRAY_FILTER_USE_KEY);
// 값을 문자열 형식으로 변환합니다
$mapped = array_map(fn($value) => (string)$value, $filtered);
print_r($mapped);
?>
먼저 필터링 한 다음 맵핑하여 불필요한 처리를 줄입니다.
먼저 맵핑 한 다음 필터링하면 쉽게 필터링하기 위해 데이터 형식 또는 구조를 먼저 통합 할 수 있습니다.
화살표 기능과 체인 호출을 사용하여 클리너 코드를 작성하십시오.
키 이름을 필터링하기 위해 array_filter_use_key 와 결합합니다.
조합 사용은 코드 로직을 명확하게하고 복잡한 루프를 피하며 코드 재사용 성과 가독성을 향상시킵니다.
이 두 기능의 조합 및 사용 기술을 마스터하면 매일 PHP 개발에서 배열을 처리하고 효율적이고 우아한 코드를 작성하는 데 더욱 편리 할 수 있습니다.
<?php
// 포괄적 인 예:빈 값을 필터링하십시오,문자열을 대문자로 변환합니다,반환 결과
$data = ['apple', '', 'Banana', null, 'Cherry'];
$result = array_map(
fn($item) => strtoupper($item),
array_filter($data, fn($item) => !empty($item))
);
print_r($result);
?>