반응형
NOT DUPLICATED 값만있는 PHP 병합 배열
두 배열을 하나의 배열로 병합해야하지만 필요한 것은 공통된 주 데이터 (중복 된 값 의미) 전에 제거하는 것입니다. 병합 할 때 고유 한 값만 필요합니다.
어떻게 할 수 있습니까?
다음은 배열 예입니다.
첫 번째 어레이
array(3) {
[0]=> object(stdClass)#17 (1) {
["email"]=> string(7) "gffggfg"
}
[1]=> object(stdClass)#18 (1) {
["email"]=> string(6) "wefwef@test.it"
}
[2]=> object(stdClass)#19 (1) {
["email"]=> string(6) "wefewf"
}
}
두 번째 어레이
array(3) {
[0]=> object(stdClass)#17 (1) {
["email"]=> string(7) "gffggfg@test.it"
}
[1]=> object(stdClass)#18 (1) {
["email"]=> string(6) "wefwef"
}
[2]=> object(stdClass)#19 (1) {
["email"]=> string(6) "wefewf"
}
}
array_merge()
함수와 함수를 결합 할 수 있습니다 array_unique()
(두 제목 모두 매우 자명합니다)
$array = array_unique (array_merge ($array1, $array2));
질문을 올바르게 이해 한 경우 :
$a1 = Array(1,2,3,4);
$a2 = Array(4,5,6,7);
$array = array_diff(array_merge($a1,$a2),array_intersect($a1,$a2));
print_r($array);
반환
Array
(
[0] => 1
[1] => 2
[2] => 3
[5] => 5
[6] => 6
[7] => 7
)
더 빠른 솔루션 :
function concatArrays($arrays){
$buf = [];
foreach($arrays as $arr){
foreach($arr as $v){
$buf[$v] = true;
}
}
return array_keys($buf);
}
$array = concatArrays([$array1, $array2]);
약간 늦게 대답했지만 배열 통합 연산자 +
가 작업을 상당히 많이 수행한다는 것을 알았습니다 ( 여기 3 섹션에서 찾았 습니다 ).
$array1 + $array2 = $array //if duplicate found, the value in $array1 will be considered ($array2 value for array_merge, if keys clearly specified)
참조 URL : https://stackoverflow.com/questions/10572546/php-merge-arrays-with-only-not-duplicated-values
반응형
'development' 카테고리의 다른 글
주어진 문자열에서 다음으로 큰 순열을 찾는 알고리즘 (0) | 2021.01.09 |
---|---|
비활성으로 인한 Amazon EC2 SSH 시간 초과 (0) | 2021.01.09 |
How to get rid of the underline in a Spannable String with a Clickable Object? (0) | 2021.01.09 |
jQuery: using a variable as a selector (0) | 2021.01.09 |
How to recover a corrupt SQLite3 database? (0) | 2021.01.09 |