Удалить дубли в многомерном массиве по ключу и значению

Никак не получается удалить дубли в массиве. Куча вариантов и не помогают. Есть такой массив, я пытаюсь удалить из него все элементы по 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');


Ответы (0 шт):