2016-04-14 10 views
-2

Ich habe ein Add-to-cart Form zu $ ​​_POST alle Daten, und in ein zweidimensionales Array zu speichern benötigt und weisen Sie zu einer Sitzung:PHP POST-Daten zuweisen, um eine zweidimensionale Anordnung

zum Beispiel print_r ($ _POST) ist:

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

Schleife jeweils $ _POST:

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

I nach einem Weg suchen und über $ f $ v in einem Array zugeordnet werden, wie beispielsweise:

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

und speichern Sie in einer Sitzung wie:

$_SESSION['products'] = $new_product; 

oder jede andere Möglichkeit, statt?

+1

Bitte zeigen Sie uns das Ergebnis von 'print_r ($ _ POST)' – rybo111

+0

Ihre Schleife kann auf '$ f = array_keys ($ _ POST) reduziert werden; $ v = array_values ​​($ _ POST); '. Aber im nächsten Schritt scheint es, dass du das zu einem Schlüssel-Wert-Array kombinieren willst ... Was mir so aussieht, als könntest du den ganzen Tanz überspringen und eine direkte "$ _SESSION ['products]] [] = $ machen _POST' ...!? – deceze

+0

Zweitens, ist das JSON, das Sie erhalten, oder warum sieht es so aus? – deceze

Antwort

1

$_SESSION['products'][] = $_POST; würde das gesamte Post-Array an das Session-Produkte-Array anhängen, aber Sie müssen die Daten validieren, die vom Benutzer gesendet wurden.

wäre ein besserer Weg:

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

Ein Beispiel für @HamzaZafeer:

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

Ich werde es morgen in Arbeitsplatz versuchen, weil das Skript nicht bei mir ist, wird Sie wieder aktualisieren. Danke. – conmen

+0

@ rybo111 lass es einen Preis in Array aber dann, wie ich Preis von diesem '$ _SESSION ['Produkte'] []' –

+0

@HamzaZafeer bekommen kann, die in einer Schleife des Produktarrays getan würde. Siehe meine Bearbeitung. – rybo111

-1

Sie Ihre Array JSON kodieren und speichern sie in einer session mit:

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

'serialize'd JSON in einer Sitzung ?! Warum in aller Welt ...!? – deceze

+0

Warum sollte das nicht eine gute Idee sein? nur neugierig? – DasSaffe

+0

Weil 'JSON' durch einen String repräsentiert wird, wäre das Serialisieren Overkill – DarkBee

Verwandte Themen