The former Russia captain joined the Gunners in February 2009 for a club record £15million but struggled to hold down a first-team place despite a promising start.
Arshavin had a spell back on loan at Zenit from February to July 2012 and will return to his hometown club permanently on a two-year deal when his Arsenal contract expires on July 1.
Arshavin said: "I am very glad that it happened. I am glad to get back to the city. It's good to wear the Zenit shirt. I just want to play football.
"Of course, I want to return to the national team. I do not know whether being at Zenit helps this or not. I just want to play football. And I want to do it in my hometown."