PHP POST数据分配给二维数组

时间:2016-04-14 12:34:24

标签: php arrays session post

我有$ _POST所有数据的添加到购物车形式,需要存储到二维数组并分配给会话:

例如 print_r($ _ POST)是:

Array("prod"=>"ZIU%3D","price"=>"68.00","alt-variation-1"=>"Red","alt-variation-2"=>"L","qty"=>"1")

循环每个$ _POST:

foreach($_POST as $field => $value){
    $f[] = $field;
    $v[] = $value;
}

我正在寻找一种方法将$ f和$ v分配到一个数组中,例如:

$new_product = array(array($f => $v));

并存储在如下的会话中:

$_SESSION['products'] = $new_product;

或其他替代方式?

2 个答案:

答案 0 :(得分:1)

$_SESSION['products'][] = $_POST;会将整个post数组附加到会话产品数组,但您需要验证用户发布的数据。

更好的方法是:

$data = $_POST;
// sanitise and validate $data here
$_SESSION['products'][] = $data;

@HamzaZafeer的一个例子:

foreach($_SESSION['products'] as $product){
  echo $product['price'];
}

答案 1 :(得分:-1)

您可以将数组编码为JSON并将其存储在session中,其中包含:

$myJson = json_encode($_POST);
$_SESSION['myJson'] = serialize($myJson);