Я не совсем понимаю, чего вы пытаетесь достичь, однако вы можете попробовать объединить array_unique()
с array_diff_key()
.Это даст вам список всех NON уникальных записей в массиве.
Что-то вроде:
array = array(
1 => array('a', 'b', 'c', 'd'),
3 => array('a', 'b', 'c', 'd'),
4 => array('a', 'b', 'c', 'd'),
5 => array('d', 'e', 'f', 'g'),
6 => array('d', 'e', 'f', 'g'),
7 => array('h', 'i', 'j', 'k')
);
$unique = array_unique($array, SORT_REGULAR);
$not_unique = array_diff_key($array, $unique);
уникальных возвращений:
array(3) {
[1]=>
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
[5]=>
array(4) {
[0]=>
string(1) "d"
[1]=>
string(1) "e"
[2]=>
string(1) "f"
[3]=>
string(1) "g"
}
[7]=>
array(4) {
[0]=>
string(1) "h"
[1]=>
string(1) "i"
[2]=>
string(1) "j"
[3]=>
string(1) "k"
}
}
и возвращение not_unique:
array(3) {
[3]=>
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
[4]=>
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
[6]=>
array(4) {
[0]=>
string(1) "d"
[1]=>
string(1) "e"
[2]=>
string(1) "f"
[3]=>
string(1) "g"
}
}
Вы можете объединить два массива, чтобы получить коллекцию из N экземпляров, и игнорировать отдельные записи.Обратите внимание на массив KEYS по результатам.Вы можете использовать их в своих интересах.