엄격하게 사용하세요.
utf8을 사용하세요;
open fa, "a.txt" 또는 die "a를 열 수 없음";
fb를 열거나 "b.txt"를 입력하지 않으면 "b를 열 수 없습니다";
chomp ( my @A = ) ;
chomp ( my @B = ) ;
닫기 b;
my(@everyone, @AHasBNot, @BHasANot, %count);
$count{A}{$_}=1 각 @A;
$count{B}{$_}=1 각 @B;
이 코드에서는 루프와 해시 테이블을 사용하여 키 목록을 반복한 다음 주어진 키 값으로 카운터를 증가시킬 수 있습니다. 이 코드는 두 개의 해시 테이블(A와 B)을 사용하고 해당 키를 반복합니다. 그런 다음 루프에서 카운터(C)와 foreach 문을 사용하여 주어진 키 값만큼 카운터 값을 증가시킬 수 있습니다.
@Everyone has = grep { $count{C}{$_} == 2 }key %{$count{C}}; 해시 테이블 $count{C}에 따라 값이 2인 키를 의미합니다. @everyone 배열에 저장하세요. 이 문은 해시 테이블을 필터링하고 조건을 충족하는 요소만 유지하는 데 사용됩니다.
foreach(@A, @B) { $count{A}{$_}++; $count{B}{$_}++; }
@A has B? 이 코드는 Perl 언어의 grep 함수와 sort 함수를 사용하여 해시 배열 %count에서 A 키에 해당하는 값에 한 번만 나타나는 요소를 선택하고 알파벳 순서로 정렬합니다.
이 코드에서는 Perl 언어의 'grep' 함수를 사용하여 배열 B에는 한 번 나타나지만 배열 A에는 나타나지 않는 요소를 필터링합니다. 구체적인 구현은 B 배열의 각 요소를 반복하고 해시 테이블 '%count'를 사용하여 각 요소의 발생 횟수를 기록하는 것입니다. 마지막으로 B 배열을 정렬한 다음 `grep` 함수를 사용하여 조건을 충족하는 요소를 필터링합니다. 마지막으로 필터링된 결과를 배열로 반환합니다.
print("공통: @모든 사람이 가지고 있습니다$/A-Only: @A만 가지고 있습니다$/B-Only: @B만 가지고 있습니다");
$a=[
["sb번호" => "0001-00001", "이름" => "心安园"],
["sbnumber" => "0001-00002", "이름" => "중정원"],
["sbnumber" => "0001-00003", "name" => "실용적인 정원"]
["sbnumber" => "0001-00004", "name" => "서비스 가든"],
{ "sbnumber": "0001-00005", "name": "장산" }
];
$b=[
["sb번호" => "0001-00001", "이름" => "心安园"],
["sbnumber" => "0001-00002", "이름" => "중정원"],
["sbnumber" => "0001-00003", "name" => "실용적인 정원"]
["sbnumber" => "0001-00004", "name" => "서비스 가든"],
{"sbnumber": "0001-00007", "이름": "lee思"}
];
$cmp=기능($av, $bv){
$r은 $av['sbnumber']와 $bv['sbnumber']를 비교하여 얻은 결과입니다.
return $r===0 ? strcmp($av['name'],$bv['name']) : $r;
};
다음 코드를 사용하여 $b 배열과 다른 $a 배열의 값을 가져와 $c 배열에 저장할 수 있습니다. $c = array_values(array_udiff($a, $b, $cmp));
$d=array_udiff($b, $a, $cmp);
foreach($d as &$dv) $c[]=$dv;
설정 해제($d);
var_dump($c);array(2) {
[0]=> array(2) { ["sbnumber"]=> string(15) "0001-00005" ["name"]=> string(6) "Zhang San" }
[1]=> array(2) { ["sbnumber"]=> string(15) "0001-00007" ["name"]=> string(6) "lee思" }
두 개의 차이점 집합을 비교하고 결과를 병합하려면 콘텐츠 비교를 위한 맞춤 규칙을 사용해야 합니다. 다양한 내용(예: 이름)을 기반으로 기록 간의 차이점을 판단하여 비교할 수 있습니다.
위 내용은 집합의 교집합과 차이를 계산하는 Perl 프로그램 작성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!