Проверьте наличие дубликатов в массиве multi-di assoc - PullRequest
0 голосов
/ 12 января 2012

У меня есть массив, подобный приведенному ниже, мне нужно проверить наличие дубликатов в многомерном ассоциативном массиве. Я не думаю, что мне действительно нужно говорить намного больше, я уже попробовал 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 ]

2 голосов
/ 12 января 2012

Это фактический вывод, потому что длины строк не совпадают ... Может быть, некоторые скрытые данные (html-теги, непечатные символы и т.строковое представление:

 $result = array_intersect_key(
      $input,
      array_unique(array_map('serialize',$input)));
0 голосов
/ 12 января 2012
$array = array(YOUR ARRAY);

foreach ($array as $key1 => $value1){
    foreach ($array as $key2 => $value2){
        if($array[$key1] == $array[$key2] && $key1 != $key2){
            unset($array[$key1]);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...