// Function that flattens a 2D array, sorts it, removes duplicates,
// and returns a new sorted array with unique values
function flattenSortUnique(array $array2d): array {
// 1. Flatten the 2D array into a 1D array
$flat = [];
foreach ($array2d as $row) {
$flat = array_merge($flat, $row);
}
// 2. Sort the flattened array
sort($flat);
// 3. Remove duplicates using array_unique
$unique = array_unique($flat);
return array_values($unique); // reindex
}
$array2d = [
[4, 3, 3, 2, 4],
[30, 10, 10],
[10, 30],
[1, 1, 6, 7, 7, 7, 8],
];
// Call the function
$arr = flattenSortUnique($array2d);
// Print results
foreach ($arr as $n) {
echo $n . "\t";
}
/*
run
1 2 3 4 6 7 8 10 30
*/