使用单个cookie值中的数组作为PHP数组

时间:2016-04-27 15:16:10

标签: php arrays cookies

我试图使用这个cookie - current = [" 1"," 2"," 4"] - 作为一个可用的数组PHP。 目前我可以回显这些值,但不能将它们用作数组。我如何将这些值转换为可用的PHP数组?

$currentUsers = $_COOKIE['current']; 

echo $currentUsers;

print_r(array_values($currentUsers));

3 个答案:

答案 0 :(得分:1)

$array = explode(",",$currentUsers);
Var_dump($array);

Echo $array[0]; // 1
Echo $array[1]; // 2
Echo $array[2]; // 4

编辑:不确定"是否实际上是Cookie值的一部分?
如果是,您可以使用str_replace('"', '', $currentUsers);删除"如果你在爆炸之前就这样做了。

Edit2:正如Ash指出的那样,我错过了答案的一部分 这是完整的代码:

$str = substr(str_replace('"', '', $currentUsers),1,-1);
$array = explode(",",$str);
Var_dump($array);

Echo $array[0]; // 1
Echo $array[1]; // 2
Echo $array[2]; // 4

答案 1 :(得分:0)

另一种解决方案,如果值始终是数字,如示例所示:

preg_match_all("/(\d+)/", $currentUsers, $array);

简单的一个班轮。如果它总是数字

工作示例http://www.phpliveregex.com/p/fuO
点击preg匹配所有按钮

答案 2 :(得分:-3)

使用eval()

$current = [];
eval('$'.$currentUsers);
var_dump($current);

对于那些具有轻量级downvote的人,输出:

[root@mypc]# php test.php
array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "4"
}