I'm trying to add some $_POST values to my $_SESSION array, but I can't seem to find the best approach.
Result with array_push():
array(1) {
'product_ids' =>
array(2) {
[0] =>
string(1) "9"
[1] =>
array(1) {
[0] =>
string(2) "14"
}
}
}
expected result:
array(1) {
'product_ids' =>
array(2) {
[0] =>
string(1) "9"
[1] =>
string(2) "14"
}
}
}
Code:
if(!empty($_SESSION['product_ids'])){
array_push($_SESSION['product_ids'],$_POST['id']);
} else {
$_SESSION['product_ids'] = $_POST['id'];
}
$_POST array:
array(1) {
'id' =>
array(1) {
[0] =>
string(2) "14"
}
}
$_SESSION array:
Emtpy
If $_POST['id']
is an array of ids, it should be named $_POST['ids']
. Use clear naming.
... else {
$_SESSION['product_ids'] = $_POST['id'];
Initially you're creating $_SESSION['product_ids']
as an array…
if(!empty($_SESSION['product_ids'])){
array_push($_SESSION['product_ids'],$_POST['id']);
…you're then pushing an array as value into the existing array. You want to merge those two arrays into a new array instead:
if (empty($_SESSION['product_ids'])) {
$_SESSION['product_ids'] = $_POST['ids'];
} else {
$_SESSION['product_ids'] = array_merge($_SESSION['product_ids'], $_POST['ids']);
}