현재 위치: > 최신 기사 목록> 변환 + 비교를 달성하기 위해 array_map () 및 array_diff ()를 결합합니다

변환 + 비교를 달성하기 위해 array_map () 및 array_diff ()를 결합합니다

M66 2025-05-14

php에서 array_map ()array_diff () 는 매우 일반적으로 사용되는 배열 작업 기능입니다. Array_Map ()은 배열의 각 요소에 콜백 함수를 적용하는 데 사용되는 반면 Array_Diff ()는 두 배열의 차이를 계산하는 데 사용됩니다. 이 두 기능을 결합하여 강력한 데이터 변환 및 배열 비교 기능을 구현할 수 있습니다.

1. array_map () 함수

Array_Map () 함수는 콜백 함수와 하나 이상의 배열을 매개 변수로 사용하고 각 요소가 해당 배열 요소에 적용되는 콜백 함수의 결과 인 새 배열을 반환합니다.

문법:

 array_map(callable $callback, array $array1, array $array2, ...);

2. array_diff () 함수

Array_Diff () 함수는 첫 번째 배열에서 존재하지만 다른 배열에는 존재하지 않는 두 개 이상의 배열 및 리턴 요소의 요소를 비교하는 데 사용됩니다.

문법:

 array_diff(array $array1, array $array2, ...);

3. Application 시나리오는 Array_Map ()Array_Diff ()를 결합합니다.

두 개의 배열이 있다고 가정합니다. 하나는 사용자 개인 정보를 포함하는 배열이고 다른 하나는 데이터베이스에서 얻은 다양한 사용자 레코드입니다. Array_Diff ()를 사용하여 데이터베이스에 존재하지 않는 사용자 정보를 찾은 다음 Array_Map ()을 사용 하여이 정보를 변환하거나 형식화 할 수 있습니다.

다음은이 두 기능을 사용하여 데이터 변환 및 배열 비교를 수행하는 방법을 보여주는 예입니다.

샘플 코드 :

 <?php
// 시뮬레이션 된 사용자 정보 배열
$users = [
    ['id' => 1, 'name' => '장 산', 'email' => 'zhangsan@example.com'],
    ['id' => 2, 'name' => 'Li Si', 'email' => 'lisi@example.com'],
    ['id' => 3, 'name' => '왕 우', 'email' => 'wangwu@example.com']
];

// 시뮬레이션 된 데이터베이스 레코드 배열(데이터베이스에 처음 두 개의 레코드 만 있다고 가정합니다.)
$dbUsers = [
    ['id' => 1, 'name' => '장 산', 'email' => 'zhangsan@m66.net'],
    ['id' => 2, 'name' => 'Li Si', 'email' => 'lisi@m66.net']
];

// 데이터베이스 레코드에없는 사용자를 확보하십시오
$usersToAdd = array_diff(
    array_map(function($user) { return $user['email']; }, $users),
    array_map(function($user) { return $user['email']; }, $dbUsers)
);

// 사용자를 추가 할 출력
echo "추가 해야하는 사용자:\n";
foreach ($usersToAdd as $userEmail) {
    echo $userEmail . "\n";
}

?>

코드 구문 분석 :

  1. 데이터 준비 : $ 사용자가 처리 할 사용자 데이터이며 $ dbusers는 데이터베이스 에 이미 존재하는 사용자 레코드입니다.

  2. 배열 비교 : Array_Map ()을 사용하여 두 배열에서 각 요소의 이메일 필드를 추출한 다음 Array_Diff ()를 사용하여 $ 사용자 의 이메일 주소를 찾거나 $ dBUSERS 에 존재하지 않습니다.

  3. 출력 결과 : Foreach를 사용하여 루프를 사용하여 추가 해야하는 사용자 이메일 주소를 출력하십시오.

4. 요약

Array_Map ()Array_Diff ()를 결합하여 매우 강력한 데이터 변환 및 배열 비교 함수를 구현할 수 있습니다. 이 접근법은 배열의 차이점을 신속하게 찾아서 결과를 변환하거나 더 처리하는 데 도움이 될 수 있습니다. 실제 개발에서 이러한 기술은 데이터를 효율적으로 처리하고 청소하는 데 도움이 될 수 있습니다.