현재 위치: > 최신 기사 목록> array_filter () 및 array_diff_ukey ()의 조합 기술

array_filter () 및 array_diff_ukey ()의 조합 기술

M66 2025-05-15

PHP 프로그래밍에서 배열 처리는 가장 일반적인 작업 중 하나입니다. 효율적으로 처리 배열은 코드 실행 효율성을 향상시킬뿐만 아니라 메모리 사용량을 줄일 수 있습니다. PHP는 많은 내장 배열 함수를 제공하며, 그중에는 Array_filter ()Array_diff_ukey ()가 배열을 처리 할 때 효율성을 향상시키는 데 도움이되는 두 가지 매우 강력한 기능입니다. 이 기사는이 두 기능을 독창적으로 사용하여 PHP 배열의 작동을 최적화하는 방법을 소개합니다.

1. array_filter ()array_diff_ukey () 함수 소개

먼저이 두 기능의 기본 용도를 빠르게 이해해 봅시다.

Array_Filter ()

Array_Filter () 함수는 배열에서 요소를 필터링하는 데 사용되며 지정된 콜백 함수에 따라 유지되어야하는 요소를 결정합니다. 기본적으로 Array_Filter ()는 콜백 함수를 true 로 전달하는 요소 만 유지합니다.

 $arr = [1, 2, 3, 4, 5];
$result = array_filter($arr, function($value) {
    return $value % 2 == 0;  // 짝수를 유지하십시오
});
print_r($result);

산출:

 Array
(
    [1] => 2
    [3] => 4
)

Array_diff_ukey ()

Array_diff_ukey () 함수는 두 배열의 키 이름을 비교하고 첫 번째 배열에 존재하지만 두 번째 배열에는 존재하지 않는 리턴 키 값 쌍을 비교하는 데 사용됩니다. Array_Diff () 와 달리 Array_Diff_ukey ()는 배열의 주요 이름을 기반으로 작동합니다.

 $arr1 = ["a" => 1, "b" => 2, "c" => 3];
$arr2 = ["b" => 4, "c" => 5, "d" => 6];
$result = array_diff_ukey($arr1, $arr2);
print_r($result);

산출:

 Array
(
    [a] => 1
)

2. Array_Filter ()array_diff_ukey ()를 조합하여 사용하십시오

여러 배열에서 복잡한 비교를해야 할 때는 Array_Filter ()Array_Diff_ukey ()를 사용하여 효율적인 데이터 필터링 및 차별 계산을 달성 할 수 있습니다. 예를 들어, 두 개의 배열이 있다고 가정하고 하나는 완전한 배열이고 다른 하나는 필터링 조건 배열이라고 가정합니다. 먼저 array_diff_ukey ()를 사용하여 키 이름에 따라 차이를 비교 한 다음 array_filter ()를 사용하여 값에 따라 필요한 데이터를 추가로 필터링 할 수 있습니다.

샘플 코드 :

두 개의 배열이 있다고 가정합니다. 그 중 하나는 사용자의 주문 정보를 저장하고 다른 하나는 장애인 사용자 ID를 저장합니다. 주문 배열에서 비증인 사용자 주문을 필터링해야합니다.

 // 사용자 주문의 완전한 배열
$orders = [
    'user1' => ['order_id' => 101, 'amount' => 250],
    'user2' => ['order_id' => 102, 'amount' => 300],
    'user3' => ['order_id' => 103, 'amount' => 450],
    'user4' => ['order_id' => 104, 'amount' => 200],
];

// 장애인 ID 정렬
$disabled_users = ['user2', 'user4'];

// 사용 array_diff_ukey() 비활성화 된 사용자 주문을 필터링합니다
$active_orders = array_diff_ukey($orders, $disabled_users);

// 사용 array_filter() 필터 주문 금액,예약량은보다 큽니다 250 명령
$filtered_orders = array_filter($active_orders, function($order) {
    return $order['amount'] > 250;
});

print_r($filtered_orders);

산출:

 Array
(
    [user3] => Array
        (
            [order_id] => 103
            [amount] => 450
        )
)

이 예에서는 먼저 Array_Diff_ukey ()를 사용하여 주문 배열에서 비활성화 된 사용자를 제거한 다음 Array_Filter ()를 사용하여 나머지 유효한 주문을 필터링하고 마지막으로 250보다 큰 주문을받습니다.

3. 조합의 장점

  1. 코드 가독성 향상 : 단계에서 데이터를 처리함으로써 코드를 이해하기가 더 쉬워집니다. 먼저 차이는 키 이름을 기준으로 계산 된 다음 값을 필터링합니다.

  2. 불필요한 계산을 피하십시오 : 컴퓨팅 리소스를 저장하기 위해 Array_diff_ukey ()를 먼저 사용하여 관련없는 데이터의 추가 처리를 피하십시오.

  3. 유연성 :이 두 기능을 자유롭게 결합하여 다른 시나리오에서 데이터 필터링 및 비교를 유연하게 처리 할 수 ​​있습니다.

4. 요약

Array_Filter ()Array_Diff_ukey ()를 영리하게 결합하여 PHP에서 배열 데이터를보다 효율적으로 처리 할 수 ​​있습니다. 이 접근법은 불필요한 계산을 줄이고 코드 가독성을 향상 시키며 나중에 데이터 처리 및 디버깅을위한 유연성을 제공하는 데 도움이 될 수 있습니다.

이 기사를 통해이 두 기능의 조합을 더 잘 이해하고 실제 PHP 프로젝트에 적용하여 배열 처리의 효율성을 향상시킬 수 있기를 바랍니다.