例如,如何使用php在cookie中为变量存储多个值 $ id = 1,2,4,5 那我怎样才能将存储的值与变量进行比较?例如,$ new_id = 4,我想检查cookie中存储的$ id值是否存在$ new_id值。 感谢您的帮助,祝您度过愉快的一天。
答案 0 :(得分:3)
您可以在cookie元素中存储任意字符串,因此序列化数组应该可以工作。例如:
// To store:
$ids = array(1, 2, 3, 4);
setcookie('ids', serialize($ids));
// To retrieve:
$serialized = $_COOKIE['ids'];
$ids = unserialize($serialized);
// sanity check: $ids needs to be an array.
assert(is_array($ids));
// Now let's check:
if (in_array(4, $ids)) {
// Yes, it's here.
}
但有几点需要注意:
考虑到这些,最好将数组存储在$_SESSION
中 - 这将为您提供几乎无限的存储空间,客户端应用程序调整值的唯一方法是通过您的代码。
答案 1 :(得分:0)
要使用多个值,您可以使用数组然后存储它,您可以序列化(和反序列化)数组。
要创建数组: $ array = array(1,2,3,4);
比较: if(in_array(2,$ array))echo“是的”;
序列化要存储的数据: $ store = serialize($ array);
十,您将能够使用$ store数据创建cookie,然后使用unserialize($ store)重新转换数组中的数据。
答案 2 :(得分:0)
尝试使用以下代码段。
// do Stuff to retrieve value of $id from cookie.
// explode variable to array
$idArr = explode(',' , $id);
// check existence of new_id in cookie variable.
if(in_array($new_id , $idArr)){
// new_id exist in cookie variable
}
希望这会有所帮助
谢谢!
侯赛因。
答案 3 :(得分:0)
以下是众多解决方案中的一个(语法可能包含错误):
// Create an array with the values you want to store in the cookie
$id = array(1, 2, 3, 4);
// Create cookie
set_cookie('id', implode(',', $id));
// Get cookie
$id = explode(',', $_COOKIE['id']);
// Test value
if(in_array($newId, $id) === true) {
// Value is in the array
}
限制: 存储在$ id中的值不能包含逗号,如果需要存储逗号
,请选择其他分隔符答案 4 :(得分:0)
将数组存储在cookie中,然后比较它们