If you want to use sockets, you should probably choose a different language, perhaps Python or Node.js (server-side JavaScript); PHP is best suited for generating HTML in response to requests. Sockets would be used for truly real-time data, but PHP would be adequate for data that can be a few seconds delayed; you would just need to have the client keep polling the PHP page for updates.
We have a number of questions already covering making multiplayer games with PHP. Try searching for PHP multiplayerPHP multiplayer and looking through those questions & answers.
The only difference in your case is that you want a mobile app as the client. For a native app, just have the app make a background HTTP request to the PHP page, then parse the data that comes back. Do this repeatedly, as frequently as you need. Your PHP page would probably respond in a computer-readable format, so research REST, JSON, and SOAP.
Or you could just make the webpage that the PHP generates mobile-device-friendly, perhaps using something like PhoneGap to have an actual app (and also take advantage of device features like GPS if you need them).
As for the actual PHP page(s), my recommendation would be to just have them poll a database, and use the database to store the state of the game. Timestamp everything, the first login request responds with the current state, and then each update request from the client should include the client's last update timestamp, and the PHP page should just gather the data from the database that's newer than the client timestamp and send it back, along with the new timestamp.
And of course, when the client performs an action, just store it in the database with the timestamp.