有個陣列,希望將陣列儲存至 Cookie 中,這裡提供兩種方法
$name = [
'k1' => "aaa",
'k2' => "bbb",
'k3' => "ccc"
];
在官網的範例中,可用下方的方式達成目的
https://www.php.net/manual/en/function.setcookie.php
setcookie("name[k1]", "aaa");
setcookie("name[k2]", "bbb");
setcookie("name[k3]", "ccc");
print_r($_COOKIE['name']);
output:
Array
(
[k1] => aaa
[k2] => bbb
[k3] => ccc
)
雖然是達到目的了,但事實上是建立了三個Cookie,怎麼看都不優雅,更難想像若是一個複雜的多惟陣列,會產生多少Cookie
再來介紹一個比較優雅的做法,我也比較喜歡,先將陣列序列化成字串存入Cookie
setcookie('name', serialize($name));
需要用到的時候,再將字串反序列化,是不是方便多了呢
$data = unserialize($_COOKIE['name']);
print_r($data);
output:
Array
(
[k1] => aaa
[k2] => bbb
[k3] => ccc
)