Wiele osób pytało mnie, jak zrobić tablicę wielowymiarową Unique. Wziąłem odniesienie z twojego komentarza i to mi pomaga.
Przede wszystkim dzięki @jeromegamez @daveilers za twoje rozwiązanie. Ale za każdym razem, gdy udzielałem odpowiedzi, pytali mnie, jak działa ta funkcja „serializacji” i „nieserializacji”. Dlatego chcę podzielić się z tobą tym powodem, aby pomóc większej liczbie osób zrozumieć koncepcję tego.
Wyjaśniam, dlaczego używamy „serializacji” i „odserializowania” etapami:
Krok 1: Przekształć tablicę wielowymiarową w tablicę jednowymiarową
Aby przekonwertować tablicę wielowymiarową na tablicę jednowymiarową, najpierw wygeneruj bajtową reprezentację strumienia wszystkich elementów (w tym tablic zagnieżdżonych) wewnątrz tablicy. Funkcja serialize () może generować bajtową reprezentację strumienia wartości. Aby wygenerować bajtową reprezentację strumienia wszystkich elementów, wywołaj funkcję serialize () wewnątrz funkcji array_map () jako funkcję zwrotną. Wynikiem będzie macierz jednowymiarowa, bez względu na liczbę poziomów macierzy wielowymiarowej.
Krok 2: Spraw, by wartości były unikalne
Aby ta tablica jednowymiarowa była unikalna, użyj funkcji array_unique ().
Krok 3: Przywróć go do tablicy wielowymiarowej
Chociaż tablica jest teraz unikalna, wartości wyglądają jak reprezentacja strumienia bajtów. Aby przywrócić go z powrotem do tablicy wielowymiarowej, użyj funkcji unserialize ().
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
Jeszcze raz dziękuję za to wszystko.