2016-04-14 4 views
-2

У меня есть форма дополнения к тележке до $ _POST все данные, и необходимо хранить в двухмерном массиве и назначить на сессии:данных PHP 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; 

или любой альтернативный способ вместо этого?

+1

Пожалуйста, покажите нам результат 'print_r ($ _ POST)' – rybo111

+0

Ваш цикл можно свести к '$ f = array_keys ($ _ POST); $ v = array_values ​​($ _ POST); '. Хотя на следующем шаге вы, похоже, захотите повторно объединить это в массив значений ключа ... Который выглядит так, как будто вы можете пропустить этот весь танец и сделать прямую '$ _SESSION ['products'] [] = $ _POST' ...!? – deceze

+0

Во-вторых, это тот JSON, который вы получаете, или почему он выглядит так? – deceze

ответ

1

$_SESSION['products'][] = $_POST; добавит весь массив сообщений в массив продуктов сеанса, но вам необходимо проверить данные, отправленные пользователем.

Лучше всего было бы:

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

пример для @HamzaZafeer:

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

Я постараюсь завтра на рабочем месте, потому что скрипт теперь не со мной, обновит вас снова. Благодарю тебя. – conmen

+0

@ rybo111 let есть цена в массиве, но тогда как я могу получить цену от этого '$ _SESSION ['products'] []' –

+0

@HamzaZafeer, который будет выполнен в цикле массива продуктов. См. Мое редактирование. – rybo111

-1

вы можете кодировать массив JSON и хранить его в session с:

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

'serialize'd JSON в сеансе ?! С какой стати...!? – deceze

+0

Почему бы не быть хорошей идеей? просто любопытно? – DasSaffe

+0

Поскольку 'JSON' представлен строкой, сериализация будет overkill – DarkBee

Смежные вопросы