function updateStyles($mapfile, $layerName, $data)
{
    $map = new mapObj($mapfile);
    $layer = $map->getLayerByName($layerName);
    deleteAllStylesForClassesOfLayer($layer);
    foreach ($data as $value) {
        for ($i = 0; $i < $layer->numclasses; $i++) {
            $class = $layer->getClass($i);
            if ($value->className == $class->name) {
                $newStyle = new styleObj($class);
                $newStyle->size = $value->size;
                $newStyle->width = $value->width;
                if ($value->symbol != "") {
                    $newStyle->symbolname = $value->symbol;
                }
                if ($value->outlinecolor != "") {
                    $outlinecolor = hex2rgb($value->outlinecolor);
                    $newStyle->outlinecolor->setRGB($outlinecolor[0], $outlinecolor[1], $outlinecolor[2]);
                }
                if ($value->color != "") {
                    $color = hex2rgb($value->color);
                    $newStyle->color->setRGB($color[0], $color[1], $color[2]);
                }
                if ($value->angle != "") {
                    $newStyle->angle = $value->angle;
                }
                if ($value->pattern != "") {
                    $newStyle->updateFromString("PATTERN " . $value->pattern . " END");
                }
                if ($value->gap != "") {
                    $newStyle->gap = $value->gap;
                }
                if ($value->initialgap != "") {
                    $newStyle->initialgap = $value->initialgap;
                }
            }
        }
    }
    $map->save($mapfile);
}