爆炸/ list()后来自cookie的值无效

时间:2013-06-09 15:28:56

标签: php

setcookie("mnau", "1-445 1-51 1-3001");
$kosik = explode(" ", $_COOKIE["mnau"]);

foreach($kosik as $value) {
    list($item_ajdi, , $itemcount) = $value;
    echo $item_ajdi . " : " . $itemcount . ",";
}

返回值1:4,1:5,1:3,而不是1:445等。

2 个答案:

答案 0 :(得分:1)

我认为您只需要在爆炸数组中循环,然后将-替换为:

setcookie("mnau", "1-445 1-51 1-3001");
//var_dump($_COOKIE);

$kosik = explode(" ", $_COOKIE["mnau"]);
foreach ($kosik as $value) {
    echo str_replace('-', ':', $value) . ', ';
}

这将输出

1:445, 1:51, 1:3001,

答案 1 :(得分:0)

@Fabio的答案是最好的,但是如果你想保留当前的代码,你需要做@Caramiriel建议并在$value上爆炸-,以便在使用它之前使其成为一个数组在list()

setcookie("mnau", "1-445 1-51 1-3001");
$kosik = explode(" ", $_COOKIE["mnau"]);
foreach($kosik as $value) {
    $value = explode("-", $value);
    list($item_ajdi,$itemcount) = $value;
    echo $item_ajdi . " : " . $itemcount . ", ";
}

带输出

1 : 445, 1 : 51, 1 : 3001,