Код

$orderBy = [
    'PROPERTY_COLOR_NAME' => 'asc',
    'PROPERTY_SIZE_NAME_PART1' => 'asc',
];
 
uasort($array, function ($a, $b) use ($orderBy) {
    $result = 0;
 
    foreach ($orderBy as $key => $value) {
 
        if ($a[$key] == $b[$key]) {
            continue;
        }
 
        $result = ($a[$key] < $b[$key]) ? -1 : 1;
 
        if ($value == 'desc') {
            $result = -$result;
        }
 
        break;
    }
 
    return $result;
});

А также, чтобы хорошо искалось, добавим: двойная сортировка, сортировка массива по двум (нескольким) полям.