As long as you can easily keep track of it then you can use whatever as the table suffix - and from a visual inspection point of view a username would be helpful, as much as numbers really seem more appropriate in case somebody could delete their account, then somebody else signs up with the same name - but that depends on your system, clearly.
$id = 123;
$query = "CREATE TABLE phonebook_$id (
contact_id int NOT NULL auto_increment,
first_name varchar(100) NOT NULL,
...
PRIMARY KEY(contact_id)
)";
It's as easy as that, which makes me wonder if I've underestimated the problem somehow.
And just out of interest, is having separate tables for every user a good solution to your design? I'm presuming you're good with database normalisation and all that.