Mein Vorschlag wäre: Erzeuge zuerst ein Array mit den gleichen Keys des originalen Arrays und nur einem skalaren Wert. Zur Not kann von komplexen Strukturen ein Hashwert gebildet werden.
Dieses Array wird dupliziert. Eins davon kannst du mit array_unique() bearbeiten, wenn die Keys erhalten bleiben. Dann ermittelst du die Unterschiede zwischen beiden Arrays (dafür gibt es auch Funktionen). Mit diesen Keys kannst du dann auf das originale Array zugreifen.
Hättest Du evtl. ein kurzes Code-Beispiel für mich ?
Danke und Gruß
Tolwin