filter_id 및 array_map ()를 결합하여 배열에서 여러 ID를 효율적으로 필터링하는 방법?
PHP에서는 종종 더 큰 배열에서 특정 기준을 충족하는 요소를 필터링해야합니다. 여러 요소가있는 배열이 있고 특정 특정 ID 만 유지하려고한다고 가정합니다. 일반적인 방법은 filter_id 및 array_map () 함수의 조합을 사용하는 것입니다. 다음으로 배열에서 여러 ID를 효율적으로 필터링하는 방법을 설명합니다.
Filter_id :이 기능의 주요 기능은 배열의 각 요소를 판단하고 특정 조건을 충족하는 요소를 필터링하는 것입니다. 일반적으로 콜백 함수와 함께 사용되므로 사용자 정의 조건에 따라 필터를 필터링 할 수 있습니다.
Array_Map () :이 함수는 배열의 각 요소에서 콜백 작동을 수행합니다. Filter_id 와 달리 필터는 없지만 배열의 각 요소에 작업 (변환, 수정 등)을 적용합니다.
filter_id 및 array_map ()을 결합 할 때 먼저 Array_Map ()을 사용하여 배열에서 요소를 처리하고 필터링하려는 요소 형식 또는 구조를 반환 할 수 있습니다. 다음으로 Filter_id는 조건부 필터링에 사용됩니다.
예를 들어, 사용자의 ID 목록에서 유효한 ID를 필터링하려고합니다.
<?php
// 이것이 우리의 원래 사용자라고 가정하십시오 ID 정렬
$user_ids = [101, 102, 103, 104, 105, 106];
// 정의 유효한 ID 범위
$valid_ids = [101, 103, 105];
// 사용 array_map() 对原始정렬进行处理
$mapped_ids = array_map(function($id) {
return 'http://m66.net/user/' . $id;
}, $user_ids);
// 사용 filter_id 효과적으로 필터링하십시오 ID
$filtered_ids = array_filter($mapped_ids, function($url) use ($valid_ids) {
// 발췌 URL 사내 ID,유효한 지 여부를 결정하십시오
preg_match('/user\/(\d+)/', $url, $matches);
return in_array($matches[1], $valid_ids);
});
// 출력 필터링 ID 목록
print_r($filtered_ids);
?>
위 코드의 출력 결과는 다음과 같습니다.
Array
(
[0] => http://m66.net/user/101
[2] => http://m66.net/user/103
[4] => http://m66.net/user/105
)
이 예에서 먼저 Array_Map ()을 사용하여 각 ID에 도메인 이름을 추가하여 URL이 포함 된 새 배열을 생성합니다. 다음으로 Array_Filter ()를 사용하여 이러한 URL을 필터링하고 유효한 ID 만 유지합니다 (즉, $ valid_ids 배열에 나타나는 ID).
위의 코드는 완전히 작동하지만 실제 애플리케이션에서는 특히 배열이 매우 큰 경우 효율성을 향상시킬 수 있습니다. 필터링 및 매핑 작업을 단일 루프로 결합하여 처리 시간 복잡성을 줄일 수 있습니다. Array_Filter () 의 세 번째 매개 변수를 사용 하여이 최적화를 달성 할 수 있습니다.
관련 태그:
array_map