support array foreach