Armazenamento de cookies para Recentemente Visto – precisa extrair dados da matriz e do cookie para 5 IDs

Estou tentando criar um recurso recentemente visto em um site. A idéia é que você tenha uma checkbox no navegador certo que mostra os últimos 3 produtos vistos. Você não precisa ser logado e não é problema se o usuário limpa os cookies, ele simplesmente começa de novo.

Pelo que eu pesquisei, a melhor maneira de fazer isso é através de um conjunto de cookies (em vez de configurar 5 cookies ou continuar adicionando cookies ou fazendo algo no mysql).

Estou tendo dois problemas:

  1. Primeiro, a matriz continua adicionando valores, eu quero que ele o capture em 3 valores e, a partir daí, solte o mais antigo, depois adicione o mais novo. Então, se você visitou 7 IDs da página do produto nesta ordem: 100,200,300,400,500,600,150, o cookie deve armazenar os valores (500,600,150). O primeiro é o mais antigo dos 3, o último é o mais novo.
  2. Em segundo lugar, não consigo claro como extrair a matriz em algo útil. A matriz é de números de identificação que eu acho que preciso consultar contra o database.

Quando coloco isso na página:

COOKIE:  

Eu entendi isso:

 COOKIE: a:7:i:0;s:3:"100";i:1;s:3:"200";i:2;s:3:"300";i:3;s:3:"400";i:4;s:3:"500";i:5;s:3:"600";i:6;s:3:"150";} 

Este é o meu código:

 //set product id $product_id = [//some stuff here sets the product id] // if the cookie exists, read it and unserialize it. If not, create a blank array if(array_key_exists('recentviews', $_COOKIE)) { $cookie = $_COOKIE['recentviews']; $cookie = unserialize($cookie); } else { $cookie = array(); } // add the value to the array and serialize $cookie[] = $product_id; $cookie = serialize($cookie); // save the cookie setcookie('recentviews', $cookie, time()+3600); 

Como faço para obter primeiro o cookie para segurar 3 valores e soltar o mais antigo? Qual é a melhor maneira de extrair esses IDs em algo que eu possa colocar em uma consulta? …. str_replace?

Isso traz uma outra pergunta, que é que eu deveria colocar o URL, o texto de âncora e alguns atributos do produto no cookie e não procurar com o php / mysql?

Como sempre, obrigado antecipadamente.

Aqui estava a resposta que acabei descobrindo myssef:

 // if the cookie exists, read it and unserialize it. If not, create a blank array if(array_key_exists('recentviews', $_COOKIE)) { $cookie = $_COOKIE['recentviews']; $cookie = unserialize($cookie); } else {$cookie = array();} // grab the values from the original array to use as needed $recent3 = $cookie[0]; $recent2 = $cookie[1]; $recent1 = $cookie[2];