I might be biased towards Sanji, but it still is a fact that Sanji was willing to give his life there too and he wanted to do it first. So that is just as much heart as Zoro. Knocking Sanji out means nothing, heart has nothing to do with strength. Also calling him weak while being part of the monster trio is a bit weird though, that together with your final sentence almost sounds like you might be a bit biased towards Zoro.
I'm fine with Zoro being stronger and so much cooler and manlier, but he hasn't shown more heart than Sanji has throughout the series, that is pretty much equal.
Even in the current arc he sacrificed his well being, his dreams and his hands to save his friends from big mom. Looks like he has a pretty big heart right ? Just like Zoro's big heart when he told Luffy to forget about Sanji when he wanted to rescue him.
But at least Zoro is such a cool guy right.