我浏览了一百万个不同的网站,我似乎无法找到答案 - 有没有办法从cookie中获取信息并将其放入数组中?我已经尝试将$_COOKIE['name']
直接存储到数组中,这会导致服务器错误。我已经尝试将$_COOKIE['name']
存储为$variable
,但是当我打印出数组时,它实际上只返回{{1}}。有成功完成此事的人有任何智慧的话吗?
代码(除了实际的数组代码,整个页面工作正常):
$variable
错误只是说“服务器错误”,这是我在任何时候遇到任何语法错误都会遇到的错误。
答案 0 :(得分:2)
变量不会在单引号字符串中展开。只需直接使用$_COOKIE['name']
作为数组键。
$productarray = array($_COOKIE['gatq']=>'The Great Gatsby <img src="gatsby.jpg">',
$_COOKIE['catcherq']=>'Catcher in the Rye <img src="catcher.jpg">',
$_COOKIE['wavesq']=>'The Waves <img src="waves.jpg">',
$_COOKIE['strangerq']=>'The Stranger <img src="stranger.jpg">',
$_COOKIE['ulyssesq']=>'Ulysses <img src="ulysses.jpg">',
$_COOKIE['prideq']=>'Pride and Prejudice <img src="pride.jpg">',
$_COOKIE['mockingbirdq']=>'To Kill a Mockingbird <img src="mockingbird.jpg">',
$_COOKIE['roadq']=>'On the Road <img src="road.jpg">'
);
但是,我不确定你在这里真正想做什么。为什么cookie的值是关联数组的键?例如$_COOKIE['gatq']
中的内容是什么?
我认为你真正想要的是一个二维数组:
$productarray = array(
array('quantity'=>$_COOKIE['gatq'], 'title'=>'The Great Gatsby <img src="gatsby.jpg">'),
array('quantity'=>$_COOKIE['catcherq'], 'title'=>'Catcher in the Rye <img src="catcher.jpg">'),
array('quantity'=>$_COOKIE['wavesq'], 'title'=>'The Waves <img src="waves.jpg">'),
array('quantity'=>$_COOKIE['strangerq'], 'title'=>'The Stranger <img src="stranger.jpg">'),
array('quantity'=>$_COOKIE['ulyssesq'], 'title'=>'Ulysses <img src="ulysses.jpg">'),
array('quantity'=>$_COOKIE['prideq'], 'title'=>'Pride and Prejudice <img src="pride.jpg">'),
array('quantity'=>$_COOKIE['mockingbirdq'], 'title'=>'To Kill a Mockingbird <img src="mockingbird.jpg">'),
array('quantity'=>$_COOKIE['roadq'], 'title'=>'On the Road <img src="road.jpg">')
);
要按数量顺序显示此内容,您可以将usort()
与$element['quantity']
比较的功能一起使用。
答案 1 :(得分:0)
$_COOKIE已经是一个数组。
print_r($_COOKIE);
你会像任何其他数组一样处理它。
if(!empty($_COOKIE['catcherq'])){
$catcherq = $_COOKIE['catcherq'];
echo $catcherq;
}
foreach($_COOKIE as $key=>$value){
echo ("$key:$value\n");
${$key}=$value;
}