Hi,
By the sounds of your post, you have obviously got the unzipping part of your zip file upload process working.
When iterating through the unzipped directory, why not do it recursively, checking each item within the directory to see whether it is a file or directory? Using the function is_dir would achieve this.
If you encounter a sub-directory, you could move it's content into the root of the current directory. One thing to bear in mind here would be file and directory name clashes.
Alternatively, you could put the onus on the user, and disallow nested directories. I.e. upload the zip file, iterate through each item checking whether it is a file or directory, and if a directory is found, inform the user that their upload contained nested directories.
Just some thoughts to start with...
R.