if (count($tag_old) == count($tag_new)) {
    $number_tagging_ok = 0;
    $number_tagging_no = 0;
    //SOSTITUISCI OGGETTI TAGGATI CON NUOVO TAG
    foreach ($tag_old as $k => $old) {
        $c = new Criteria();
        $c->add(TaggingPeer::TAG_ID, $old);
        $results = TaggingPeer::doSelect($c);
        foreach ($results as $rs) {
            $obj_tag = TagPeer::retrieveByPk($tag_new[$k]);
            if ($obj_tag) {
                $c = new Criteria();
                $c->add(TaggingPeer::TAG_ID, $tag_new[$k]);
                $c->add(TaggingPeer::TAGGABLE_ID, $rs->getTaggableId());
                $c->add(TaggingPeer::TAGGABLE_MODEL, $rs->getTaggableModel());
                $r = TaggingPeer::doSelectOne($c);
                if (!$r) {
                    $rs->setTagId($tag_new[$k]);
                    $rs->save();
                    echo "sostituito " . $old . " con " . $tag_new[$k] . " in " . $rs->getTaggableId() . "\n";
                    $number_tagging_ok = $number_tagging_ok + 1;
                } else {
                    $rs->delete();
                    $number_tagging_no = $number_tagging_no + 1;
                }
            } else {
                echo "non esiste tag con id=" . $tag_new[$k] . "\n";
            }
        }
    }
    //SOSTITUISCI TAG MONITORATI CON NUOVO TAG