How to flatten a 2D array into a sorted one-dimensional array in PHP

1 Answer

0 votes
function flattenAndSort2DArray($array2d) {
    $flattenedArray = [];
    
    foreach ($array2d as $subArray) {
        foreach ($subArray as $value) {
            $flattenedArray[] = $value;
        }
    }
    
    $uniqueValues = array_unique($flattenedArray);
    sort($uniqueValues);
    
    return $uniqueValues;
}

$array2d = [
    [4, 3, 3, 2],
    [30, 10, 10],
    [10],
    [1, 1, 6, 7, 7, 7, 8],
];

$sortedUniqueValues = flattenAndSort2DArray($array2d);

echo implode(", ", $sortedUniqueValues) . "\n";

foreach ($sortedUniqueValues as $value) {
    echo $value . " ";
}



/*
run:

1, 2, 3, 4, 6, 7, 8, 10, 30
1 2 3 4 6 7 8 10 30 

*/

 



answered Aug 15, 2024 by avibootz
...