Try to add the whole folder instead of each file.

    $zip = new Archiverzip($filename);
    $zip->add($tmp_folder_full_path);

See https://api.drupal.org/api/drupal/modules%21system%21system.archiver.inc/function/ArchiverZip%3A%3Aadd/7