I got an array containing path names and file names
['css/demo/main.css', 'home.css', 'admin/main.css','account']
For each of this paths you'll have to specific whether it is a file or a directory. Or you could make your script assume, that the path is pointing to a file when the basename (the last part of the path) contains a dot.
To create a directory recursively is simple:
mkdir(dirname($path), 0755, true); // $path is a file mkdir($path, 0755, true); // $path is a directory
0755 is the umask, you can read about it here: http://ch.php.net/manual/en/function.chmod.php