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


Using an array from a single cookie value as PHP array

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

$currentUsers = $_COOKIE['current']; 
echo $currentUsers;
print_r(array_values($currentUsers));
$array = explode(",",$currentUsers);
Var_dump($array);
Echo $array[0]; // 1
Echo $array[1]; // 2
Echo $array[2]; // 4

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

编辑2:正如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

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

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

简单的一个衬里。如果总是数字

工作示例 http://www.phpliveregex.com/p/fuO
首先单击"全部匹配"按钮

使用 eval()

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

对于那些轻量级反对票的人,输出:

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