检查multi-di assoc数组中的重复项

时间:2012-01-12 19:33:49

标签: php arrays multidimensional-array associative-array

我有一个类似下面的数组,我需要检查多维关联数组中的重复项。我不认为我真的需要说更多,我已经尝试过了array_unique而且当它们显然没有重复的时候恰好认为它们是重复的。

我想改变这个:

array(3) {
  [1]=>
  array(2) {
    ["itself"]=>
    string(31) "New York"
    ["status"]=>
    string(18) "great"
  }
  [2]=>
  array(2) {
    ["itself"]=>
    string(36) "New York"
    ["status"]=>
    string(22) "great"
  }
  [3]=>
  array(2) {
    ["itself"]=>
    string(29) "New York"
    ["status"]=>
    string(18) "great"
  }
}

对此:

array(1) {
  [1]=>
  array(2) {
    ["itself"]=>
    string(31) "New York"
    ["status"]=>
    string(18) "great"
  }
}

2 个答案:

答案 0 :(得分:2)

这是一个实际的输出,因为字符串长度不匹配...可能是一些隐藏的数据(html标签,不可打印的字符等)?

如果不是:array_unique想要一个字符串表示:

 $result = array_intersect_key(
      $input,
      array_unique(array_map('serialize',$input)));

答案 1 :(得分:0)

$array = array(YOUR ARRAY);

foreach ($array as $key1 => $value1){
    foreach ($array as $key2 => $value2){
        if($array[$key1] == $array[$key2] && $key1 != $key2){
            unset($array[$key1]);
        }
    }
}