2016-06-29 4 views
1

둘 이상의 배열을 array_unique() 함수에 넣을 수있는 방법이 있습니까? 그렇지 않은 경우 여러 배열에서 고유 한 결과를 얻는 다른 해결책이 있습니까?array_unique를 사용하여 여러 배열에서 고유 값을 가져 오는 방법은 무엇입니까?

+6

병합 어레이는 첫째, 다음 사용' –

+0

가능한 중복 http://stackoverflow.com/questions/5211900/php-array-unique-for-arrays-inside-array – Shank

+0

array_unique' RTFM http://php.net/manual/en/ref.array.php, http://php.net/manual/en/function.array-unique.php –

답변

3

질문의 첫 번째 부분에 대한 대답은 입니다.입니다.

The array_unique function definition in the PHP manual은 정확히 두 개의 인수, 하나의 배열 및 함수의 정렬 동작을 결정하는 선택적 정수를 취한다고 명시되어 있습니다.

array array_unique (array $array [, int $sort_flags = SORT_STRING ]) 

설명서의 단어를 사용하는 대신 몇 가지 테스트 배열을 사용하십시오.

$one_array  = ['thing', 'another_thing', 'same_thing', 'same_thing']; 
$two_arrays  = ['A', 'B', 'C', 'thing', 'same_thing']; 
$or_more_arrays = ['same_thing', 1, 2, 3]; 

함수로 작업을 수행 테스트 쇼의 몇 광고 :

$try_it = array_unique($one_array); 

반환 ['thing', 'another_thing', 'same_thing'];

$try_it = array_unique($one_array, $two_arrays); 

당신에게

경고 경고를 제공합니다 array_unique를 ()는 매개 변수 2가 inte가 될 것으로 예상합니다. 배열은 주어진

을 반환하고 null을 반환합니다. 대부분이 매개 변수에 기대() 3 주어진

을 array_unique 및 null를 반환

$try_it = array_unique($one_array, $two_arrays, $or_more_arrays); 

는 경고 당신에게

경고를 제공합니다.


질문의 두 번째 부분에 대한 답변은 YES입니다.

array_unique를 사용하여 고유 한 값을 얻으려면 하나의 값 배열이 있어야합니다. u_mulder가 주석 처리 한대로 array_merge을 사용하여 array_unique을 사용하기 전에 다양한 입력 배열을 하나로 결합하여이 작업을 수행 할 수 있습니다.만약 대신 여러 개의 개별 배열 변수의

$unique = array_unique(array_merge($one_array, $two_arrays, $or_more_arrays)); 

반환

['thing', 'another_thing', 'same_thing', 'A', 'B', 'C', 1, 2, 3]; 

, 당신은 다음과 같은 배열의 배열을 가지고 :

$multi_array_example = [ 
    [1, 2, 3], 
    [2, 3, 4], 
    [3, 4, 5], 
    [4, 5, 6] 
]; 

그런 다음에 병합하는 array_mergearray_reduce을 사용할 수 있습니다 하나의 배열을 사용하기 전에 array_unique.

$unique = array_unique(array_reduce($multi_array_example, 'array_merge', [])); 

반환 [1, 2, 3, 4, 5, 6]

+0

"두려워하지 마라." 완전한 응답 창을 다. 나는 모두가 너처럼 대답하기를 바랍니다. 감사합니다. –

0

기본적으로 array_unique()은 배열 유형이 array 인 두 개의 매개 변수를 취하고 입력 배열과 두 번째 매개 변수 인 sorting (int 유형)은 정렬 동작을 사용합니다. 자세한 내용은 PHP manual for array_unique()에서 확인할 수 있습니다.

@u_mulder가 제안한 것처럼 어레이를 먼저 병합 한 다음 임시 배열 (here하는 방법을 배울 수 있음)을 병합 한 다음 해당 임시 배열에 array_unique을 적용합니다.

관련 문제