Here's what I'd do:
You should get a line that looks like this:
libz.so.1 => /usr/lib/libz.so.1 (0xb7357000)
ldd claims that it can't resolve what file
libz.so.1 is in, then uninstall and reinstall
pacman -R -f zlib
pacman -S zlib
ldd can find a specific
libz.so.1, then check to see if that file constitutes a broken symbolic link:
ls -l /usr/lib/libz.so.1
ldd told you that libz.so.1 resolves to).
On my Arch boxes, /usr/lib/libz.so.1 is a symbolic link of libz.so.1.2.6 . If /usr/lib/libz.so.1 links to some weird place, like a home directory, track down why - that shouldn't happen.
Ensure that whatever file that
ldd resolves libz.so.1 to actually exists, and has contents. I get this:
261 % file libz.so.1.2.6
libz.so.1.2.6: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xb32fb568a025a99ed67220243b487b93ae8ef948, stripped
If the link exists, but the linked-to libz.so.1.2.6 doesn't exist, perhaps you can do the two
pacman command sequence above and get everything back. I guess I'd advise against just doing the two
pacman commands, until you understand what's going on. Something must have changed, unless this is a new installation, and somehow the zlib package didn't get installed.