我想删除基于**两个**键的数组中的重复行

时间:2016-08-18 12:15:47

标签: php

我想删除基于 TWO 键'id_send'和'id_ip'的重复行, 我找到了一个函数,但它只能用一个键:

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;
}

这是数组'stats':

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和第二行。

1 个答案:

答案 0 :(得分:2)

将第二个键添加到函数参数(如

)并不难
function super_unique($array, $key, $key2) {

然后将第二个键的现有逻辑加倍

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

那里'。'将值粘合成一个字符串