Birçok kişi Benzersiz çok boyutlu diziyi nasıl yapacağımı sordu. Yorumunuzdan referans aldım ve bu bana yardımcı oluyor.
Her şeyden önce, çözümünüz için @ jeromegamez @ daveilers sayesinde. Ama her cevap verdiğimde bana bunun 'serileştirme' ve 'dizileştirme' işlemlerinin nasıl çalıştığını sordular. Bu yüzden bunun nedenini sizinle paylaşmak istiyorum, böylece daha fazla insanın bunun arkasındaki kavramı anlamasına yardımcı olacak.
Adımlarla neden 'serileştir' ve 'serileştirme' kullandığımızı açıklıyorum:
Adım 1: Çok boyutlu diziyi tek boyutlu diziye dönüştürün
Çok boyutlu diziyi tek boyutlu bir diziye dönüştürmek için, önce dizi içindeki tüm öğelerin (iç içe diziler dahil) bayt akışı gösterimini oluşturun. serialize () işlevi bir değerin bayt akışı gösterimini oluşturabilir. Tüm öğelerin bayt akışı temsilini oluşturmak için, array_map () işlevi içindeki serialize () işlevini geri arama işlevi olarak çağırın. Sonuç, çok boyutlu dizinin kaç düzeyi olursa olsun tek boyutlu bir dizi olacaktır.
2. Adım: Değerleri benzersiz yapın
Bu tek boyutlu diziyi benzersiz yapmak için array_unique () işlevini kullanın.
Adım 3: Çok boyutlu diziye geri döndürün
Dizi artık benzersiz olsa da, değerler bayt akışı temsiline benziyor. Çok boyutlu diziye geri döndürmek için unserialize () işlevini kullanın.
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
Tüm bunlar için tekrar teşekkürler.