How can duplicates be removed from a multidimensional array in PHP?
When dealing with a multidimensional array in PHP, removing duplicates can be a bit more complex than with a one-dimensional array. One approach is to flatten the array, remove duplicates, and then reconstruct the multidimensional structure. This can be achieved by using a combination of array_map, array_unique, and array_values functions in PHP.
// Sample multidimensional array with duplicates
$multiArray = array(
array(1, 2, 3),
array(4, 5, 6),
array(1, 2, 3),
array(7, 8, 9)
);
// Flatten the multidimensional array
$flatArray = call_user_func_array('array_merge', $multiArray);
// Remove duplicates
$uniqueArray = array_unique($flatArray);
// Reconstruct the multidimensional array
$finalArray = array_map(function($subArray) use ($uniqueArray) {
return array_intersect($subArray, $uniqueArray);
}, $multiArray);
// Remove empty subarrays
$finalArray = array_filter($finalArray);
// Print the final multidimensional array without duplicates
print_r($finalArray);