Одной вещью, которую вы должны рассмотреть, является serialize и unserialize для кодирования ваших данных cookie. Но будьте осторожны, исходя из моего опыта, вы должны использовать stripslashes для значения cookie, прежде чем десериализовать его. Таким образом, вы можете десериализовать данные, изменить значения, повторно идентифицировать файл cookie и отправить его снова. Сериализация облегчит в будущем, если вы хотите хранить более сложные типы данных.
например:
setcookie("mycookies",serialize($cookies_array),time()+60*60*24*30);
// This won't work until the next page reload, because $_COOKIE['mycookies']
// Will not be set until the headers are sent
$cookie_data = unserialize(stripslashes($_COOKIE['mycookies']));
$cookie_data['foo'] = 'bar';
setcookie("mycookies",serialize($cookies_array),time()+60*60*24*30);