2016-08-18 1 views
1

내가 키 'id_send'와 'id_ip'에 bassed dupplicate 행을 제거하려면 ** 두 ** 키에 bassed 배열의 dupplicate 행을 제거하고 싶지만 할 수에만 작동 ONE 키 :나는, 내가 함수를 발견 을

Array 
(
    [0] => Array 
    (
     [id_send] => 10 
     [id_user] => 30 
     [id_ip] => 99 
     [view] => 9652 
    ) 
    [1] => Array 
    (
     [id_send] => 10 
     [id_user] => 20 
     [id_ip] => 100 
     [view] => 450 
    ) 

    [2] => Array 
    (
     [id_send] => 10 
     [id_user] => 30 
     [id_ip] => 99 
     [view] => 456 
    ) 
) 

그래서 내가해야 할 기능은 0, 두 번째 행을 반환 :

function super_unique($array, $key) { 
$temp_array = array(); 
foreach ($array as &$v) { 
    if (!isset($temp_array[$v[$key]])) { 
     $temp_array[$v[$key]] = & $v; 
    } 
} 
$array = array_values($temp_array); 
return $array; 
} 

이 배열 '통계'입니다.

+0

원하는 출력이 있습니까? – Aminesrine

답변

2

그것은 하드가

function super_unique($array, $key, $key2) { 

같은 함수 인수에 두 번째 키를 추가 한 후 단지 두 번째 키

if (!isset($temp_array[$v[$key].$v[$key2]])) { 
    $temp_array[$v[$key].$v[$key2]] = & $v; 
} 

그에 대한 기존 논리를 두 배로하는 것이 아니다 '.' 값을 함께 문자열로 붙입니다.

+1

그럼 12 & 1을 붙이고 1 & 21을 붙이면 죄송합니다. –

+0

당신이 말했듯이 쉽게 할 수 있습니다. verry much .. – mosab

+0

@KarolyHorvath가 맞습니다. 고유 한 레코드 인 –

관련 문제