Удалить дубли в многомерном массиве по ключу и значению
Никак не получается удалить дубли в массиве. Куча вариантов и не помогают. Есть такой массив, я пытаюсь удалить из него все элементы по ID с одинаковым значением(в данном случае, где ID = 48). Т.е. Если сейчас выводит 48,33,48, то должно остаться 48,33 :
array(2) {
[0]=> array(2) {
["items"]=> array(1) {
[0]=> array(6) {
["ID"]=> string(2) "48"
["text"]=> string(0) ""
["title"]=> string(18) "Карточка 1"
["points"]=> string(0) ""
["pointsGift"]=> string(0) ""
["popularPro"]=> string(0) "" } }
["typeBlock"]=> string(1) "0" }
[1]=> array(3) {
["items"]=> array(2) {
[0]=> array(3) {
["ID"]=> string(2) "33"
["text"]=> string(0) ""
["title"]=> string(18) "Карточка 2" }
[1]=> array(3) {
["ID"]=> string(2) "48"
["text"]=> string(0) ""
["title"]=> string(18) "Карточка 3" } }
["title"]=> string(1) "2"
["typeBlock"]=> string(1) "1" } }
Использую, к примеру, вот такой код, но отображается в итоге только один элемент из массива. Т.е. удаляет и дубль 48 и карточку с ID 33 и т.д. :
$details = $data['products'];
function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();
foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$temp_array[$i] = $val;
}
$i++;
}
return $temp_array;
}
$details = unique_multidim_array($details,'ID');