Rất nhiều người hỏi tôi làm thế nào để tạo ra mảng đa chiều độc đáo. Tôi đã tham khảo từ bình luận của bạn và nó giúp tôi.
Trước hết, Cảm ơn @jeromegamez @daveilers cho giải pháp của bạn. Nhưng mỗi khi tôi đưa ra câu trả lời, họ lại hỏi tôi cách 'tuần tự hóa' và 'không xác định' này hoạt động như thế nào. Đó là lý do tại sao tôi muốn chia sẻ lý do của việc này với bạn để nó sẽ giúp nhiều người hiểu hơn về khái niệm này.
Tôi đang giải thích lý do tại sao chúng tôi sử dụng 'tuần tự hóa' và 'hủy xác định' theo các bước:
Bước 1: Chuyển đổi mảng đa chiều thành mảng một chiều
Để chuyển đổi mảng đa chiều thành mảng một chiều, trước tiên hãy tạo biểu diễn luồng byte của tất cả các phần tử (bao gồm các mảng lồng nhau) bên trong mảng. Hàm serialize () có thể tạo biểu diễn luồng byte của một giá trị. Để tạo biểu diễn luồng byte của tất cả các phần tử, hãy gọi hàm serialize () bên trong hàm Array_map () dưới dạng hàm gọi lại. Kết quả sẽ là một mảng một chiều cho dù mảng đa chiều có bao nhiêu cấp.
Bước 2: Làm cho các giá trị là duy nhất
Để làm cho mảng một chiều này là duy nhất, hãy sử dụng hàm Array_unique ().
Bước 3: Hoàn nguyên nó về mảng đa chiều
Mặc dù mảng này là duy nhất, các giá trị trông giống như biểu diễn luồng byte. Để hoàn nguyên nó trở lại mảng nhiều chiều, hãy sử dụng hàm unserialize ().
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
Cảm ơn một lần nữa cho tất cả điều này.