Как всем известно, хранить массив в том виде как он есть, в куках нельзя. В куки можно записывать только строковые значения.
Все что нам нужно это просто преобразовать массив в строку и записать в куку. И потом прочитать из кук и преобразовать строку опять в массив.
Я нашел несколько способов, для конвертирования массива в строку и обратно. Первый спосовб — это сериализация, а второй это разложение с помощью функции implode.
Ниже приведены четыре функции — две из них переводят массив в староку и записываютс в куку, и две другие читают куки и переводят строку обратно в массив.
// записываем
function setArrayInCookie($nameCookies, $array){
$value = serialize($array);
setcookie($nameCookies, $value, time()+3600*24);
return true;
}
// читаем
function getArrayInCookie($nameCookies){
if(isset($_COOKIE[$nameCookies])){
$result = unserialize($_COOKIE[$nameCookies]);
}else{
$result = false;
}
return $result;
}
// записываем
function setArrayInCookie2($nameCookies, $array){
$value = implode('|||', $array);
setcookie($nameCookies, $value, time()+3600*24);
return true;
}
// читаем
function getArrayInCookie2($nameCookies){
if(isset($_COOKIE[$nameCookies])){
$result = explode('|||', $_COOKIE[$nameCookies]);
}else{
$result = false;
}
return $result;
}