현재 위치: > 최신 기사 목록> array_column + array_intersect 특정 값이있는 행을 필터링합니다.

array_column + array_intersect 특정 값이있는 행을 필터링합니다.

M66 2025-04-28

PHP에서는 특히 어레이에서 특정 행을 필터링 할 때 다차원 배열을 다루어야합니다. PHP는 이러한 작업을 효율적으로 수행하는 데 도움이되는 많은 실용적인 기능을 제공하며, 그중에는 array_columnarray_intersect가 매우 일반적으로 사용되는 두 가지 기능입니다.

Array_Column 함수는 다차원 배열에서 지정된 열의 값을 얻는 데 사용될 수있는 반면 Array_Intersect 함수는 다른 배열과 교차하는 배열의 일부를 찾는 데 사용될 수 있습니다. 이 두 기능을 결합하여 특정 값이 포함 된 행을 쉽게 필터링 할 수 있습니다. 이 기사는 간단한 예제를 사용하여 필터링 에이 두 기능을 사용하는 방법을 보여줍니다.

샘플 시나리오

여러 사용자 정보가 포함 된 다차원 배열이 있다고 가정하면 각 사용자 정보는 연관 배열입니다. 이메일 주소 예제@m66.net 으로 모든 사용자 정보를 필터링해야합니다. Array_Column을 사용하여 모든 이메일 주소를 얻은 다음 Array_Intersect를 사용하여 특정 이메일 주소가 포함 된 줄을 찾을 수 있습니다.

샘플 코드

 <?php
// 사용자 데이터
$users = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net'],
    ['id' => 4, 'name' => 'David', 'email' => 'example@m66.net'],
    ['id' => 5, 'name' => 'Eve', 'email' => 'eve@m66.net'],
];

// 필터링 해야하는 특정 이메일 주소
$targetEmail = 'example@m66.net';

// 사용 array_column 모든 이메일 주소를 얻으십시오
$emails = array_column($users, 'email');

// 사용 array_intersect 대상 사서함과 동일한 행을 찾으십시오
$filteredUsers = array_filter($users, function ($user) use ($emails, $targetEmail) {
    return in_array($targetEmail, $emails) && $user['email'] === $targetEmail;
});

// 출력 필터 결과
print_r($filteredUsers);
?>

코드 구문 분석

  1. Array_Column :이 기능은 다차원 배열에서 지정된 열을 추출하는 데 사용됩니다. 여기서 우리는 Array_Column ($ user, '이메일')을 사용하여 모든 사용자의 이메일 주소를 추출하고 $ 이메일 배열에 저장합니다.

  2. Array_Intersect :이 함수는 배열 간의 교차점을 반환 할 수 있습니다. 이 예에서는 Array_Intersect를 직접 사용하여 배열 교차점을 비교하지만 in_array를 사용하여 이메일 주소가 대상 배열에 있는지 확인합니다. 일치하는 이메일 주소가 발견되면 해당 라인을 반환합니다.

  3. Array_Filter : 기준을 충족하는 요소를 필터링하고 필터링하는 데 사용됩니다. 이 예에서는 사용자 정의 콜백 함수를 통해 이메일 주소 'example@m66.net' 으로 행을 걸러냅니다.

출력 결과

위 코드를 실행할 때 $ Filtersusers 어레이에는 사서함 'example@m66.net' 이있는 사용자 데이터 만 포함되며 출력 결과는 다음과 같습니다.