Muita pessoa me perguntou como criar um array multidimensional exclusivo. Tomei referência do seu comentário e isso me ajuda.
Antes de tudo, obrigado a @jeromegamez @daveilers por sua solução. Mas toda vez que eu dava a resposta, eles me perguntavam como esse 'serializar' e 'desserializar' funciona. É por isso que quero compartilhar o motivo disso com você, para que ajude mais pessoas a entender o conceito por trás disso.
Estou explicando por que usamos 'serialize' e 'unserialize' nas etapas:
Etapa 1: Converter a matriz multidimensional em matriz unidimensional
Para converter a matriz multidimensional em uma matriz unidimensional, primeiro gere representação de fluxo de bytes de todos os elementos (incluindo matrizes aninhadas) dentro da matriz. A função serialize () pode gerar representação de fluxo de bytes de um valor. Para gerar a representação do fluxo de bytes de todos os elementos, chame a função serialize () dentro da função array_map () como uma função de retorno de chamada. O resultado será uma matriz unidimensional, independentemente de quantos níveis a matriz multidimensional possua.
Etapa 2: Tornar os valores exclusivos
Para tornar essa matriz unidimensional exclusiva, use a função array_unique ().
Etapa 3: reverta-o para a matriz multidimensional
Embora a matriz agora seja única, os valores parecem representação de fluxo de bytes. Para reverter para a matriz multidimensional, use a função unserialize ().
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
Mais uma vez obrigado por tudo isso.