What is the difference and which one is better?
I am planning to develop an android application that will send a notification from one user of the app to another user of the same app using PHP, so which one is suited for developing this application?.
C2DM should not be used anymore, ever. It's officially phased out in favor of GCM. Google might stop supporting it altogether at some point.
The difference, from implementor's standpoint, is minimal, and GCM is actually easier to integrate with (you don't need to create a dummy Google account, for one thing).